killall
Kill processes by name.
Description
Sends a signal (default SIGTERM) to every process whose command name
matches one of the given arguments. Names are matched against the
kernel's comm field, which the kernel truncates to 15 characters
(TASK_COMM_LEN).
Compared to pkill, killall matches names exactly rather than via
regular expression. Multiple names may be given; each is processed
independently.
Inputs
/proc/[pid]/stat-- process command name (comm)/proc/[pid]/status-- process owner UID (used by-u)/etc/passwd-- username-to-UID resolution (used by-u)
Arguments
| Argument | Description |
|---|---|
name... (positional) |
Process names to signal |
-s SIGNAL, --signal SIGNAL |
Signal to send (name or number); defaults to TERM |
-SIG, -NAME, -NUM |
Shorthand for -s SIG (e.g. -9, -HUP) |
-I, --ignore-case |
Case-insensitive name match |
-u USER, --user USER |
Match only processes owned by USER |
-l, --list |
List supported signal names and exit |
-q, --quiet |
Suppress the "no process found" diagnostic |
-v, --verbose |
Print a line for each signalled process |
Behavior
For each name, walks /proc, finds processes whose comm matches
exactly (case-sensitively unless -I), and sends the chosen signal to
each. The diagnostic <name>: no process found is printed to stderr
when a name has zero matches (suppressed with -q).
Exit codes
| Code | Meaning |
|---|---|
| 0 | Every name matched at least one process and all signals were delivered |
| 1 | At least one name matched no process, or a signal could not be delivered |
| 2 | Invalid arguments (unknown signal, no names given, etc.) |
Divergences from psmisc
The following options are not yet implemented: -e/--exact (long-name
matching), -r/--regexp (regex patterns — use pkill),
-i/--interactive, -w/--wait, -g/--process-group,
-y/--younger-than, -o/--older-than, -Z/--context (SELinux),
-n/--ns (namespace).
Because matching is always against the truncated comm, processes
whose binary name is longer than 15 characters can only be matched by
their truncated form.