09-03-2016
First note that you cannot trap a SIGKILL signal. If your process receives a SIGKILL, it will be terminated without a chance to execute any more instructions. (This is the case for any process; not just shell scripts.)
If you are writing a C program, and you use a signal catching function that gives you a siginfo_t structure when a signal is received and the signal received is of a few certain types and was sent under certain conditions, that C program can determine the process ID and user ID of the process that sent the signal. I don't know of any shell that catches this information and makes it available to code running as an action in a trap command when a shell script receives a signal.
This User Gave Thanks to Don Cragun For This Post:
10 More Discussions You Might Find Interesting
1. UNIX for Dummies Questions & Answers
1. If I use an software application(which connects to the database in the server) in my local pc, how many PID should be registered? Would there be PID for the session and another PID for socket connection?
2. I noticed (through netstat) that when I logged in using the my software application,... (1 Reply)
Discussion started by: pcx26
1 Replies
2. Shell Programming and Scripting
gurus,
normally to stop a process ,i need to kill all its child & then parent process.
i do it manually as follows
bash-2.03$ ps -ef | grep bpm|grep -v grep
tibadmin 21882 21875 0 May 27 ? 0:00 /bin/sh ./bpmse_20.sh -Xms512m -Xmx512m /tibco/UpdateCustomer/dat/UpdateCustome
... (0 Replies)
Discussion started by: abhijeetkul
0 Replies
3. UNIX for Advanced & Expert Users
What option is used with kill to cause the server to reread its config file. (16 Replies)
Discussion started by: jo calamine
16 Replies
4. UNIX for Dummies Questions & Answers
Hi,
I need to get the pid of a process and have to store the pid in a variable and i want to use this value(pid) of the variable for some process. Please can anyone tell me how to get the pid of a process and store it in a variable. please help me on this.
Thanks in advance,
Amudha (7 Replies)
Discussion started by: samudha
7 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. Solaris
Say I have 2 processes(perl scripts on Solaris machine) A and B.
the process A kill the process B.
While in the process B how do I print the PID of the process that Killed it(process A) before dieing.
My process A looks like
open(STATS, "ps -ef|");
while ($inputLine = <STATS>) {
if... (7 Replies)
Discussion started by: enigma_007
7 Replies
7. Shell Programming and Scripting
I had issues with processes locking up. This script checks for processes and kills them if they are older than a certain time.
Its uses some functions you'll need to define or remove, like slog() which I use for logging, and is_running() which checks if this script is already running so you can... (0 Replies)
Discussion started by: sukerman
0 Replies
8. Homework & Coursework Questions
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
9. UNIX for Dummies Questions & Answers
need script(shell or python) for killing pid in linux (2 Replies)
Discussion started by: roshan9995
2 Replies
10. Shell Programming and Scripting
Hello:
Am trying to understand why the method #2 works but method #1 does not.
For both methods, sending CTRL+C should kill both the Parent script & all of the spanwd background procs.
Method #1:
==========================
#!/bin/sh
ctrl_c()
{
echo "** Trapped CTRL-C"
... (3 Replies)
Discussion started by: gilgamesh
3 Replies
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)