APLawrence.com -  Resources for Unix and Linux Systems, Bloggers and the self-employed

KTFM (Killing the Fine Manual)


Some material is very old and may be incorrect today

© September 2005 Tony Lawrence

In a recent newgroup thread, someone was looking for a shell equivalent to "killpg" (a system call that sends a signal to a process group). Someone who really should have known better answered with one word: "kill". The original poster shortly replied with something like "Gee, I didn't know I could use anything but PID's with kill" and got another laconic response: " Read the man page."

And of course he had, though not carefully. The syntax for specifying a process group rather than a pid is to prefix the process group number with a "-" (or "--" so you can leave out the signal itself for the default kill).

However, that's not the whole story. Shells like bash override kill with their own function, which has different syntax and options. So someone who had read "man kill" but not the kill section in "man bash" could be further confused. Looky here, for example:


$ kill -l
 1) SIGHUP       2) SIGINT       3) SIGQUIT      4) SIGILL
 5) SIGTRAP      6) SIGABRT      7) SIGBUS       8) SIGFPE
 9) SIGKILL     10) SIGUSR1     11) SIGSEGV     12) SIGUSR2
13) SIGPIPE     14) SIGALRM     15) SIGTERM     17) SIGCHLD
18) SIGCONT     19) SIGSTOP     20) SIGTSTP     21) SIGTTIN
22) SIGTTOU     23) SIGURG      24) SIGXCPU     25) SIGXFSZ
26) SIGVTALRM   27) SIGPROF     28) SIGWINCH    29) SIGIO
30) SIGPWR      31) SIGSYS      33) SIGRTMIN    34) SIGRTMIN+1
35) SIGRTMIN+2  36) SIGRTMIN+3  37) SIGRTMIN+4  38) SIGRTMIN+5
39) SIGRTMIN+6  40) SIGRTMIN+7  41) SIGRTMIN+8  42) SIGRTMIN+9
43) SIGRTMIN+10 44) SIGRTMIN+11 45) SIGRTMIN+12 46) SIGRTMIN+13
47) SIGRTMIN+14 48) SIGRTMIN+15 49) SIGRTMAX-15 50) SIGRTMAX-14
51) SIGRTMAX-13 52) SIGRTMAX-12 53) SIGRTMAX-11 54) SIGRTMAX-10
55) SIGRTMAX-9  56) SIGRTMAX-8  57) SIGRTMAX-7  58) SIGRTMAX-6
59) SIGRTMAX-5  60) SIGRTMAX-4  61) SIGRTMAX-3  62) SIGRTMAX-2
63) SIGRTMAX-1  64) SIGRTMAX
$ /bin/kill -l
HUP INT QUIT ILL ABRT FPE KILL SEGV PIPE ALRM TERM USR1 USR2 CHLD CONT
STOP TSTP TTIN TTOU TRAP IOT BUS SYS STKFLT URG IO POLL CLD XCPU XFSZ
VTALRM PROF PWR WINCH UNUSED
 

It's interesting that /bin/kill doesn't mind using the long form signal names and bash doesn't mind using the short:

$ /bin/kill -s SIGHUP 1207
kill 1207: No such process
$ /bin/kill -s HUP 1207
kill 1207: No such process
$ kill -s HUP 1207
-bash: kill: (1207) - No such process
$ kill -s SIGHUP 1207
-bash: kill: (1207) - No such process
 

But don't try giving /bin/kill any of that bash extra stuff:

$ kill -s SIGRTMAX 1207
-bash: kill: (1207) - No such process
$ /bin/kill -s SIGRTMAX 1207
kill: unknown signal SIGRTMAX; valid signals:
HUP INT QUIT ILL ABRT FPE KILL SEGV PIPE ALRM TERM USR1 USR2 CHLD CONT
STOP TSTP TTIN TTOU TRAP IOT BUS SYS STKFLT URG IO POLL CLD XCPU XFSZ
VTALRM PROF PWR WINCH UNUSED
 

By the way, for the original question, "killall" has a -g option to kill process groups.


If you found something useful today, please consider a small donation.



Got something to add? Send me email.





(OLDER)    <- More Stuff -> (NEWER)    (NEWEST)   

Printer Friendly Version

->
-> KTFM (Killing the Fine Manual)


Inexpensive and informative Apple related e-books:

Take Control of Pages

Take Control of Numbers

Take Control of Automating Your Mac

El Capitan: A Take Control Crash Course

Take Control of iCloud, Fifth Edition





More Articles by © Tony Lawrence





Printer Friendly Version

Have you tried Searching this site?

This is a Unix/Linux resource website. It contains technical articles about Unix, Linux and general computing related subjects, opinion, news, help files, how-to's, tutorials and more.

Contact us


Printer Friendly Version





Everyone knows that debugging is twice as hard as writing a program in the first place. So if you're as clever as you can be when you write it, how will you ever debug it? (Brian Kernighan)




Linux posts

Troubleshooting posts


This post tagged:

Opinion



Unix/Linux Consultants

Skills Tests

Unix/Linux Book Reviews

My Unix/Linux Troubleshooting Book

This site runs on Linode