skill
Send a signal to processes selected by user, tty, pid, or command.
Description
skill is the obsolete predecessor of pkill; both tools are kept
for compatibility, but new use cases should prefer pkill. The CLI
follows procps-ng's quirky convention where the signal is given as a
leading -NAME or -N argument (e.g. skill -KILL -u alice), like
kill(1).
The default signal is TERM. Selectors (-t, -u, -p, -c) are
OR'd within their category and AND'd across categories.
Inputs
kill(2)syscall — sends signals to matched processes./proc/[pid]/stat— process name (comm), PID, session, tty./proc/[pid]/status— effective UID./proc/[pid]/cmdline— full command line (when matching by-c).
Synopsis
skill [signal] [options] <expression>
expression is a list of bare PIDs (interpreted in conjunction with
-p). Selectors with explicit flags can be mixed with bare PIDs.
Arguments
| Flag | Description |
|---|---|
-<SIG> (e.g. -9, -KILL, -SIGKILL) |
Signal to send. Default: TERM |
--signal SIG |
Same as the leading-flag form, but in long-flag style |
-l, --list |
List all signal names |
-L, --table |
List all signal names in a numbered table |
-n, --no-action |
Don't send signals; just print matching PIDs |
-v, --verbose |
Print the PID and comm of each signaled process |
-t, --tty TTY |
Match processes whose controlling tty is TTY (repeatable) |
-u, --user USER |
Match processes whose effective user is USER (name or numeric UID, repeatable) |
-p, --pid PID |
Match processes by PID (repeatable) |
-c, --command CMD |
Match processes whose comm is exactly CMD (repeatable) |
--help / -V, --version |
Help / version |
The signal can appear anywhere on the command line. Bare positional integers are added to the PID list.
Behavior
Selection
-c values match the process comm exactly; multiple -c values are
OR'd. -p values become an exact PID filter. Selectors across
categories (-t, -u, -p, -c) are combined with AND.
-l / -L
Identical output to kill -l / kill -L. Standard signals 1–31 only;
real-time signals are omitted.
-n (no-action)
Prints matching PIDs, one per line, in ascending order. Useful as a dry-run before signaling.
-v (verbose)
For each successfully signaled process, prints pid: comm.
Exit codes
| Code | Meaning |
|---|---|
| 0 | At least one process matched and was signaled (or list/table requested) |
| 1 | No processes matched, or all signal deliveries failed |
| 2 | Usage error (unknown signal, no expression given, invalid argument) |
Divergences from procps-ng
Behaviour matches procps-ng for the supported flag set; some procps-ng features are not yet implemented:
-i(interactive),-f(fast),-w(warnings) mode flags.--ns PIDand--nslist NS,...— namespace-based selection.- Real-time signals (
SIGRTMIN..SIGRTMAX) cannot be named; they are still deliverable by number via--signal N.
Error messages for invalid arguments use different wording.