kill — Send signals to processes
kill
[-f] [-signal] [-s signal
] pid
...
kill
-l signal
| -L
kill
-h | -V
-f, --force force, using win32 interface if necessary -l, --list print a list of signal names -L, --table print a formatted table of signal names -s, --signal send signal (use kill --list for a list) -W, --winpid specified pids are windows PIDs, not Cygwin PIDs (use with extreme caution!) -h, --help output usage information and exit -V, --version output version information and exit
The kill program allows you to send arbitrary signals to other Cygwin programs. The usual purpose is to end a running program from some other window when ^C won't work, but you can also send program-specified signals such as SIGUSR1 to trigger actions within the program, like enabling debugging or re-opening log files. Each program defines the signals they understand.
You may need to specify the full path to use kill from within some shells, including bash, the default Cygwin shell. This is because bash defines a kill builtin function; see the bash man page under BUILTIN COMMANDS for more information. To make sure you are using the Cygwin version, try
$ /bin/kill --version
which should give the Cygwin kill version number and copyright information.
The -f
option uses Windows functions to
terminate processes forcefully. Use -f
to
terminate native Windows processes not started by Cygwin processes.
-f
can also be useful to terminate Cygwin processes
not answering to SIGKILL.
Unless you specific the -W
option, the "pid"
values used by kill are the Cygwin pids, not the
Windows pids. To get a list of running programs and their Cygwin pids,
use the Cygwin ps program. ps -W
will display all windows pids.
The kill -l option prints the name of the given signal, or a list of all signal names if no signal is given.
The kill -L option is similar to -l
,
but it will print signal names and their corresponding numbers.
To send a specific signal, use the -signN
option,
either with a signal number or a signal name (minus the "SIG" part), as
shown in these examples:
Here is a list of available signals, their numbers, and some
commentary on them, from the file
<sys/signal.h>
, which should be considered the
official source of this information.
SIGHUP 1 hangup SIGINT 2 interrupt SIGQUIT 3 quit SIGILL 4 illegal instruction (not reset when caught) SIGTRAP 5 trace trap (not reset when caught) SIGABRT 6 used by abort SIGIOT 6 another name for SIGABRT SIGEMT 7 EMT instruction SIGFPE 8 floating point exception SIGKILL 9 kill (cannot be caught or ignored) SIGBUS 10 bus error SIGSEGV 11 segmentation violation SIGSYS 12 bad argument to system call SIGPIPE 13 write on a pipe with no one to read it SIGALRM 14 alarm clock SIGTERM 15 software termination signal from kill SIGURG 16 urgent condition on IO channel SIGSTOP 17 sendable stop signal not from tty SIGTSTP 18 stop signal from tty SIGCONT 19 continue a stopped process SIGCHLD 20 to parent on child stop or exit SIGCLD 20 System V name for SIGCHLD SIGTTIN 21 to readers pgrp upon background tty read SIGTTOU 22 like TTIN for output if (tp->t_local<OSTOP) SIGIO 23 input/output possible SIGPOLL 23 System V name for SIGIO SIGXCPU 24 exceeded CPU time limit SIGXFSZ 25 exceeded file size limit SIGVTALRM 26 virtual time alarm SIGPROF 27 profiling time alarm SIGWINCH 28 window changed SIGLOST 29 resource lost (eg, record-lock lost) SIGPWR 29 power failure SIGUSR1 30 user defined signal 1 SIGUSR2 31 user defined signal 2