02-01-2010
Trap Command Problem
Hi All ,
Could you please help me in resolving the below problem.
I have 2 Script file say
Scrip1.sh
Script2.sh.
Initially Script1.sh is started executed and inside the script1 , SIGINT is trapped to a separate cleanup process and exit.
While Script1.sh is started executing , CTRL+C is given from Keyboard and it is working fine.i.e Separate Claenup is executed and exit.
In the Script2.sh , the KILL -SIGINIT pid (Pid of Script1.sh ) command is invoked . during this case , Script1.sh is not killed , but it is in HANG State , taking its own time to finally get exit.
Even without invoking Script2.sh , from a separate Terminal , KILL command is issued , but the same behaviour.
Could someone of you help me.
10 More Discussions You Might Find Interesting
1. Shell Programming and Scripting
I am having a unix script which in turns calls another unix script.
Both are creating some temp files in /tmp which are supposed to be deleted after the end of each run
In the child script if I have statement like
trap "rm -f $messagefile" EXIT
A similar statement is there in parent... (3 Replies)
Discussion started by: superprogrammer
3 Replies
2. UNIX for Dummies Questions & Answers
i have the following script that displays the current time until the user presses CTR + c.... but it does not work properly....
Something is not right with the trap command...
Help plz... :confused:
# script to continuously display current time.
# if script is terminated trap signal... (3 Replies)
Discussion started by: onlyc
3 Replies
3. UNIX for Dummies Questions & Answers
Dear All
could you please explain me what does the trap command do and how I can write a program which can work as a trap command(in C Language). (1 Reply)
Discussion started by: mobile01
1 Replies
4. Shell Programming and Scripting
Hi,
I would like to know the use of TRAP command. I am very new to the UNIX environment. I have just started learning the basic. So please teach me in a very simple way to understand.
Also i would like to know the use of following command:
trap 'dialog --msgbox "Script Aborted1" 6 50 ;... (2 Replies)
Discussion started by: Deepakh
2 Replies
5. Shell Programming and Scripting
Hi folks,
I have tried to add some trap detection in the below script....this script is used to monitor database activities...in a rather awkward way :rolleyes:....
The idea behind adding trap is that....this script creates lots of temporary files in the running folder to store the count... (1 Reply)
Discussion started by: frozensmilz
1 Replies
6. Shell Programming and Scripting
Hey all, I'm a fairly new shell scripter (been writing some very basic stuff for a couple of years once in a blue moon).
I have the need to start 2 or 3 processes from within a bash script when it's run then have the script kind of hang out and wait for the user to ctrl+c and when that happens... (3 Replies)
Discussion started by: jsabino
3 Replies
7. Shell Programming and Scripting
I am trying to trap CTRL-C, now the program I call has it's own exit message, I think this is the problem ..
This is what I have now :
function dothis
{
echo 'you hit control-c'
exit
}
function settrap
{
trap dothis SIGINT
}
settrap
until false; do
./ITGRecv.exe
doneDoing this I... (2 Replies)
Discussion started by: Pmarcoen
2 Replies
8. UNIX for Advanced & Expert Users
Hello experts!
I need to know the use of trap command please
In one of our program we have trap "rm -f temp1 ; exit 1" 1 2 15 0
and program always exit with 1
there is a rm -f temp1 as well at the end of the program
as
rm -f temp1
exit 0
when I test a probram with set... (4 Replies)
Discussion started by: ramshree01
4 Replies
9. UNIX for Dummies Questions & Answers
I'm learning about the trap command from my bash book. I tried out the little script they gave:
trap "echo 'You hit control-C!' " INT
while true; do
sleep 60
done
But when I type control-c, the script just stops and the message is not displayed. I checked stty all and saw that control-c... (11 Replies)
Discussion started by: Straitsfan
11 Replies
10. Shell Programming and Scripting
dear all;
I can't under stand what does "trap" command do:
for example see below:
trap "echo; echo no interrupts >&2; sleep 3" 2 3 15
Plz , can any body explain the action of this command?
BR (3 Replies)
Discussion started by: ahmad.diab
3 Replies
LEARN ABOUT LINUX
supervisor_bridge
supervisor_bridge(3erl) Erlang Module Definition supervisor_bridge(3erl)
NAME
supervisor_bridge - Generic Supervisor Bridge Behaviour.
DESCRIPTION
A behaviour module for implementing a supervisor_bridge, a process which connects a subsystem not designed according to the OTP design
principles to a supervision tree. The supervisor_bridge sits between a supervisor and the subsystem. It behaves like a real supervisor to
its own supervisor, but has a different interface than a real supervisor to the subsystem. Refer to OTP Design Principles for more informa-
tion.
A supervisor_bridge assumes the functions for starting and stopping the subsystem to be located in a callback module exporting a pre-
defined set of functions.
The sys module can be used for debugging a supervisor_bridge.
Unless otherwise stated, all functions in this module will fail if the specified supervisor_bridge does not exist or if bad arguments are
given.
EXPORTS
start_link(Module, Args) -> Result
start_link(SupBridgeName, Module, Args) -> Result
Types SupBridgeName = {local,Name} | {global,Name}
Name = atom()
Module = atom()
Args = term()
Result = {ok,Pid} | ignore | {error,Error}
Pid = pid()
Error = {already_started,Pid} | term()
Creates a supervisor_bridge process, linked to the calling process, which calls Module:init/1 to start the subsystem. To ensure a
synchronized start-up procedure, this function does not return until Module:init/1 has returned.
If SupBridgeName={local,Name} the supervisor_bridge is registered locally as Name using register/2 . If SupBridgeName={global,Name}
the supervisor_bridge is registered globally as Name using global:register_name/2 . If no name is provided, the supervisor_bridge is
not registered. If there already exists a process with the specified SupBridgeName the function returns
{error,{already_started,Pid}} , where Pid is the pid of that process.
Module is the name of the callback module.
Args is an arbitrary term which is passed as the argument to Module:init/1 .
If the supervisor_bridge and the subsystem are successfully started the function returns {ok,Pid} , where Pid is is the pid of the
supervisor_bridge.
If Module:init/1 returns ignore , this function returns ignore as well and the supervisor_bridge terminates with reason normal . If
Module:init/1 fails or returns an error tuple or an incorrect value, this function returns {error,Term} where Term is a term with
information about the error, and the supervisor_bridge terminates with reason Term .
CALLBACK FUNCTIONS
The following functions should be exported from a supervisor_bridge callback module.
EXPORTS
Module:init(Args) -> Result
Types Args = term()
Result = {ok,Pid,State} | ignore | {error,Error}
Pid = pid()
State = term()
Error = term()
Whenever a supervisor_bridge is started using supervisor_bridge:start_link/2,3 , this function is called by the new process to start
the subsystem and initialize.
Args is the Args argument provided to the start function.
The function should return {ok,Pid,State} where Pid is the pid of the main process in the subsystem and State is any term.
If later Pid terminates with a reason Reason , the supervisor bridge will terminate with reason Reason as well. If later the super-
visor_bridge is stopped by its supervisor with reason Reason , it will call Module:terminate(Reason,State) to terminate.
If something goes wrong during the initialization the function should return {error,Error} where Error is any term, or ignore .
Module:terminate(Reason, State)
Types Reason = shutdown | term()
State = term()
This function is called by the supervisor_bridge when it is about to terminate. It should be the opposite of Module:init/1 and stop
the subsystem and do any necessary cleaning up. The return value is ignored.
Reason is shutdown if the supervisor_bridge is terminated by its supervisor. If the supervisor_bridge terminates because a a linked
process (apart from the main process of the subsystem) has terminated with reason Term , Reason will be Term .
State is taken from the return value of Module:init/1 .
SEE ALSO
supervisor(3erl) , sys(3erl)
Ericsson AB stdlib 1.17.3 supervisor_bridge(3erl)