There is no SIGEXIT on UNIX systems. Standards conforming UNIX shells can set a trap on exit such as:
which will cause the shell to execute the commands in that trap just before exiting. Note that the exit utility in the shell command language looks to see if a trap on exit has been installed (and if so invokes it before issuing the UNIX exit(exit_code); system call). There is no return from that trap handler -- once the commands specified in the exit condition trap handler complete, the shell exits.
I make no claim to any knowledge about how perl handles $SIG{EXIT}=handler;, but if perl handles it similarly to the way shells handle trap 'commands' EXIT, that trap will only be executed once. If perl's $SIG{EXIT}=handler; is similar to setting a signal handler in the C programming language; there is no SIGEXIT so setting a signal handler for that signal should fail.
This User Gave Thanks to Don Cragun For This Post:
Does anyone know how to program signals in fmli?
My fmli script goes in loop when the telnet session is closed. When I start the script from the prompt the issue do not happen. But when it is started by the login process it hags. That's why I want to program the SIGHUP to exit/finish the script.... (0 Replies)
hey champs,
I have a process running.......i have to catch/trap the signal when the process is being interupted/killed (kill -9 pid) option......
how can i achieve the same thru my process........
let my process is a.sh and it supposed to take 13 mins to complete, but due to some problem ,... (15 Replies)
Hi,
I have a trap problem when calling a child script in the background.
I know there are a lot of threads here on the issue of traps and signals, I think I have read all the relevant ones, but still haven't found an answer to my problem.
I'm working on Linux or HP, the script as you can see... (4 Replies)
I just want to trap kill -9 signal issued by any of user from any terminal and just capture that user terminal who had raised this kill -9 command (1 Reply)
In my Bash script I have an exit/cleanup function in a trap statement like:
trap exitCleanup 1 2 3 6 15 25
Is there anyway to capture which signal # has occurred to record in a log file. Please note I am trying to avoid something like:
trap 'mySignal=1; exitCleanup' 1
trap... (1 Reply)
Hi ,
i have a scenario where...i have to put a check where if script is executing more than 15mins i have to kill that script and n retry again 2nd time.
i this case i can use background process to do it but i feel trap will be the efficent way to do so...
but i dont know much about it... (1 Reply)
Hi, I would like to ask, if is it possible to quit running loop in the script any other way than catching the trap signal. Ctrl-C ends only current running instance of process but not whole script. Any clues? (3 Replies)
Use and complete the template provided. The entire template must be completed. If you don't, your post may be deleted!
1. The problem statement, all variables and given/known data:
That is the last reply I received from my instructor, and I'm looking for some alternatives.
When using... (2 Replies)
Discussion started by: newuser45
2 Replies
LEARN ABOUT SUNOS
onintr
trap(1) User Commands trap(1)NAME
trap, onintr - shell built-in functions to respond to (hardware) signals
SYNOPSIS
sh
trap [ argument n [n2...]]
csh
onintr [-| label]
ksh
*trap [ arg sig [ sig2...]]
DESCRIPTION
sh
The trap command argument is to be read and executed when the shell receives numeric or symbolic signal(s) (n). (Note: argument is scanned
once when the trap is set and once when the trap is taken.) Trap commands are executed in order of signal number or corresponding symbolic
names. Any attempt to set a trap on a signal that was ignored on entry to the current shell is ineffective. An attempt to trap on signal 11
(memory fault) produces an error. If argument is absent all trap(s) n are reset to their original values. If argument is the null string
this signal is ignored by the shell and by the commands it invokes. If n is 0 the command argument is executed on exit from the shell. The
trap command with no arguments prints a list of commands associated with each signal number.
csh
onintr controls the action of the shell on interrupts. With no arguments, onintr restores the default action of the shell on interrupts.
(The shell terminates shell scripts and returns to the terminal command input level). With the - argument, the shell ignores all inter-
rupts. With a label argument, the shell executes a goto label when an interrupt is received or a child process terminates because it was
interrupted.
ksh
trap uses arg as a command to be read and executed when the shell receives signal(s) sig. (Note that arg is scanned once when the trap is
set and once when the trap is taken.) Each sig can be given as a number or as the name of the signal. trap commands are executed in order
of signal number. Any attempt to set a trap on a signal that was ignored on entry to the current shell is ineffective. If arg is omitted
or is -, then the trap(s) for each sig are reset to their original values. If arg is the null (the empty string, e.g., "" ) string then
this signal is ignored by the shell and by the commands it invokes. If sig is ERR then arg will be executed whenever a command has a non-
zero exit status. If sig is DEBUG then arg will be executed after each command. If sig is 0 or EXIT for a trap set outside any function
then the command arg is executed on exit from the shell. The trap command with no arguments prints a list of commands associated with each
signal number.
On this man page, ksh(1) commands that are preceded by one or two * (asterisks) are treated specially in the following ways:
1. Variable assignment lists preceding the command remain in effect when the command completes.
2. I/O redirections are processed after variable assignments.
3. Errors cause a script that contains them to abort.
4. Words, following a command preceded by ** that are in the format of a variable assignment, are expanded with the same rules as a vari-
able assignment. This means that tilde substitution is performed after the = sign and word splitting and file name generation are not
performed.
ATTRIBUTES
See attributes(5) for descriptions of the following attributes:
+-----------------------------+-----------------------------+
| ATTRIBUTE TYPE | ATTRIBUTE VALUE |
+-----------------------------+-----------------------------+
|Availability |SUNWcsu |
+-----------------------------+-----------------------------+
SEE ALSO csh(1), exit(1), ksh(1), sh(1), attributes(5)SunOS 5.10 23 Oct 1994 trap(1)