USING THE trap COMMAND,SIGNALS ARE USED TO PREMATURELY TERMINATE THE EXECUTION OF A PROCESS,EITHER INTENTIONALLY OR UNINTENTIONALLY.
TRAP COMMAND IS USED TO TRAP ONE OR MORE SIGNALS AND THEN DECIDE ABOUT FURTHER COURSE OF ACTION.IF NO ACTION IS MENTIONED,THEN THE SIGNALS OR SIGNAL ARE JUST TRAPPED AND THE EXECUTION OF THE PROGRAM RESUMES FROM THE POINT FROM WHERE IT HAD BEEN LEFT OFF.
THE GENERAL FORMAT IS:
$trap[commands]signal_numbers
THE COMMAND PART IS OPTIONAL.WHEN IT IS PRESENT ,ALL THE COMMANDS PRESENT IN THIS PART ARE EXECUTED ONE BY ONE.AS SOON AS,RECEIVES ONE OF THE SIGNALS SPECIFIED IN THE signal_numbers LIST.THE COMMAND USED MUST BE ENCLOSED USING EITHER SINGLE OR DOUBLE QUOTATION MARKS.MULTIPLE COMMANDS IN THE command part ARE SEPARATED BY THE ; CHARACTER.
1)$trap
THIS COMMAND DISPLAYS LIST OF CURRENTLY SET SIGNAL TRAPS.
2)$trap "echo killed by signal 15;exit"15
WHEN THE PROCESS RECEIVES "KILL COMMAND",CAUSING SIGNAL 15,THE ABOVE COMMAND FIRST GIVES THE MESSAGE "killed by signal 15" AND THEN TERMINATES THE CURRENT PROCESS.
3)$trap "ls -l" 1 2 3
WHEN THE PROCESS GENERATES ANY ONE OF THE SIGNAL 1,2,3 ,A LONG LISTING OF THE CURRENT WORKING DIRECTORY IS GENERATED AND THEN EXECUTION OF THE PROCESS RESUMES FROM THE POINT WHERE IT HAD BEEN LEFT OFF.
4)$trap ""1 2 3 15
THIS COMMAND JUST TRAPS THE SIGNAL NUMBERS 1,2,3 AND 15.
5)$trap -l
THIS COMMAND DISPLAY THE NAME OF ALL SIGNALS AND WITH THEIR CORRESPONDING NUMBERS.
GIVEN BELOW IS A SIMPLE SCRIPT THAT KEEPS ON RUNNING TILL THE USER INTERRUPTS IT BY USING THE INTERRUPT KEY.
$cat -n sample trap
1 trap "echo PROGRAM INTERRUPTED;exit 1"2
2 while true
3 do
4 echo "program running"
5 done
$
RESETTING TRAPS:
A TRAP COMMAND CHANGES THE DEFAULT ACTIONS OF A SIGNAL.
FOR EG: ONE MIGHT NEED TO TRAP A CERTAIN SIGNAL IN ONE PART OF THE SCRIPT AND NEED THE SAME SIGNAL NOT TO BE TRAPPED IN SOME OTHER PART.
THE COMMAND TO TRAP THE SIGNAL WILL BE AS:
$trap "exit" 2 3 15
THE EFFECT OF THE SIGNALS 2,3,15 ARE RESTORED USING
TRAP COMMAND ,WITHOUT THE COMMAND PART IN IT IS SHOWN BELOW;
$trap 2 3 15
TRAP COMMAND IS USED TO TRAP ONE OR MORE SIGNALS AND THEN DECIDE ABOUT FURTHER COURSE OF ACTION.IF NO ACTION IS MENTIONED,THEN THE SIGNALS OR SIGNAL ARE JUST TRAPPED AND THE EXECUTION OF THE PROGRAM RESUMES FROM THE POINT FROM WHERE IT HAD BEEN LEFT OFF.
THE GENERAL FORMAT IS:
$trap[commands]signal_numbers
THE COMMAND PART IS OPTIONAL.WHEN IT IS PRESENT ,ALL THE COMMANDS PRESENT IN THIS PART ARE EXECUTED ONE BY ONE.AS SOON AS,RECEIVES ONE OF THE SIGNALS SPECIFIED IN THE signal_numbers LIST.THE COMMAND USED MUST BE ENCLOSED USING EITHER SINGLE OR DOUBLE QUOTATION MARKS.MULTIPLE COMMANDS IN THE command part ARE SEPARATED BY THE ; CHARACTER.
1)$trap
THIS COMMAND DISPLAYS LIST OF CURRENTLY SET SIGNAL TRAPS.
2)$trap "echo killed by signal 15;exit"15
WHEN THE PROCESS RECEIVES "KILL COMMAND",CAUSING SIGNAL 15,THE ABOVE COMMAND FIRST GIVES THE MESSAGE "killed by signal 15" AND THEN TERMINATES THE CURRENT PROCESS.
3)$trap "ls -l" 1 2 3
WHEN THE PROCESS GENERATES ANY ONE OF THE SIGNAL 1,2,3 ,A LONG LISTING OF THE CURRENT WORKING DIRECTORY IS GENERATED AND THEN EXECUTION OF THE PROCESS RESUMES FROM THE POINT WHERE IT HAD BEEN LEFT OFF.
4)$trap ""1 2 3 15
THIS COMMAND JUST TRAPS THE SIGNAL NUMBERS 1,2,3 AND 15.
5)$trap -l
THIS COMMAND DISPLAY THE NAME OF ALL SIGNALS AND WITH THEIR CORRESPONDING NUMBERS.
GIVEN BELOW IS A SIMPLE SCRIPT THAT KEEPS ON RUNNING TILL THE USER INTERRUPTS IT BY USING THE INTERRUPT KEY.
$cat -n sample trap
1 trap "echo PROGRAM INTERRUPTED;exit 1"2
2 while true
3 do
4 echo "program running"
5 done
$
RESETTING TRAPS:
A TRAP COMMAND CHANGES THE DEFAULT ACTIONS OF A SIGNAL.
FOR EG: ONE MIGHT NEED TO TRAP A CERTAIN SIGNAL IN ONE PART OF THE SCRIPT AND NEED THE SAME SIGNAL NOT TO BE TRAPPED IN SOME OTHER PART.
THE COMMAND TO TRAP THE SIGNAL WILL BE AS:
$trap "exit" 2 3 15
THE EFFECT OF THE SIGNALS 2,3,15 ARE RESTORED USING
TRAP COMMAND ,WITHOUT THE COMMAND PART IN IT IS SHOWN BELOW;
$trap 2 3 15
No comments:
Post a Comment