WebMasterCampus
WEB DEVELOPER Resources

Linux killall Command

Learn Linux killall Command with examples


Linux killall Command

In Linux, we can use “killall” command kill processes by name

killall command is used for killing any running process on the system based on a given name. This command will terminate the processes forcibly when a specified name matches.

killall Command Syntax

>> killall [OPTIONS] name

killall Command Example

kill the gthumb process that was running on my system.

>> killall gthumb

Note: killall is case-sensitive.

killall -i Command

Use killall -i command to ask the user permissions before it kills a process.

>> killall gthumb

killall -l Command

killall -l to list all signals the killall command can send.

>> killall -l

HUP INT QUIT ILL TRAP ABRT BUS FPE KILL USR1 SEGV USR2 PIPE ALRM TERM STKFLT
CHLD CONT STOP TSTP TTIN TTOU URG XCPU XFSZ VTALRM PROF WINCH POLL PWR SYS

killall -u Command

If need to kill all processes related to specific user, then you can use the -u option provided by killall.

>> killall -u [user-name]

>> killall -u webmastercampus

killall options to kill processes based on time

killall -o, ––older-than Command

To kill all processes that have now been running for more than 5 hours, then we canuse the -o option.

>> killall -o 6h

killall -y, ––younger-than Command

To kill processes than are, say, less than 3 hours old, then we can do that using the -y option.

>> killall -y 3h

killall -w Command

Use killall -w, –wait If you want to make sure the command only returns after the process dies, it forces killall to wait.

>> killall -w [process-name]

killall Command Options

Options Description
-e
--exact
Require an exact match for very long names. If a command name is longer than 15 characters; the full name may be unavailable (i.e. it is swapped out). In this case; killall kills everything that matches in the first 15 characters. With -e; such entries are skipped. killall prints a message for each skipped entry if -v is specified in addition to -e.
-I
--ignore-case
Do case insensitive process name match.
-g
--process-group
Kill the process group that the process belongs. The kill signal is only sent once per group; even if multiple processes belonging to the same process group were found.
-i
--interactive
Interactively ask for confirmation before killing.
-l
--list
List all known signal names.
-o
--older-than
Match only processes that are older (started before) than the time specified. The time is specified as a float then a unit. The units are s;m;h;d;w;M;y for seconds; minutes; hours; days; weeks; Months; and years respectively.
-q
--quiet
Do not complain if no processes were killed.
-r
--regexp
Interpret process name pattern as an extended regular expression.
-s
--signal
Send this signal instead of SIGTERM.
-u
--user
Kill only processes the specified user owns. Command names are optional.
-v
--verbose
Report if the signal was successfully sent.
-V
--version
Display version information.
-w
--wait
Wait for all killed processes to die. killall checks once per second if any of the killed processes still exist and only returns if none are left. Note that killall may wait forever if the signal was ignored; had no effect; or if the process stays in zombie state.
-y
--younger-than
Match only processes that are younger (started after) than the time specified. The time is specified as a float then a unit. The units are s;m;h;d;w;M;y for seconds; minutes; hours; days; weeks; Months; and years respectively.
-Z
--context
(SELinux Only) Specify security context: kill only processes having security context that match with given expended regular expression pattern. Must precede other arguments on the command line. Command names are optional.

killall bugs

  • Killing by file only works for executables that are kept open during execution, i.e. impure executables can’tbe killed this way.
  • killall -w doesn’t detect if a process disappears and is replaced by a new process with the same PID between scans.
  • If processes change their name, killall may not be able to match them correctly.
  • killall has a limit of names that can be specified on the command line. This figure is the size of an unsigned long multiplied by 8. For most 32 bit systems the limit is 32 and similarly for a 64 bit system the limit is usually 64.
  • Be warned that typing killall name may not have the desired effect on non-Linux systems, especially when done by a privileged user.

killall Command in Linux (Documentation)

>> man killall

NAME
       killall - kill processes by name

SYNOPSIS
       killall [-Z, --context pattern] [-e, --exact] [-g, --process-group] [-i, --interactive] [-n, --ns PID]
       [-o, --older-than TIME] [-q, --quiet] [-r, --regexp] [-s, --signal SIGNAL, -SIGNAL] [-u, --user user]
       [-v, --verbose] [-w, --wait] [-y, --younger-than TIME] [-I, --ignore-case] [-V, --version] [--] name ...
       killall -l
       killall -V, --version

DESCRIPTION
       killall  sends  a  signal to all processes running any of the specified commands.  If no signal name is speci‐
       fied, SIGTERM is sent.

       Signals can be specified either by name (e.g.  -HUP or -SIGHUP) or by number (e.g.  -1) or by option -s.

       If the command name is not regular expression (option -r) and contains a slash (/), processes  executing  that
       particular file will be selected for killing, independent of their name.

       killall returns a zero return code if at least one process has been killed for each listed command, or no com‐
       mands were listed and at least one process matched the -u and -Z search criteria.   killall  returns  non-zero
       otherwise.

       A killall process never kills itself (but may kill other killall processes).

OPTIONS
       -e, --exact
              Require  an  exact match for very long names.  If a command name is longer than 15 characters, the full
              name may be unavailable (i.e.  it is swapped out).  In this case, killall  will  kill  everything  that
              matches  within  the first 15 characters.  With -e, such entries are skipped.  killall prints a message
              for each skipped entry if -v is specified in addition to -e,

       -I, --ignore-case
              Do case insensitive process name match.

       -g, --process-group
              Kill the process group to which the process belongs.  The kill signal is only sent once per group, even
              if multiple processes belonging to the same process group were found.

       -i, --interactive
              Interactively ask for confirmation before killing.

       -l, --list
              List all known signal names.

       -n, --ns
              Match against the PID namespace of the given PID. The default is to match against all namespaces.

       -o, --older-than
              Match  only  processes  that are older (started before) the time specified.  The time is specified as a
              float then a unit.  The units are s,m,h,d,w,M,y for seconds, minutes, hours, days,  weeks,  Months  and
              years respectively.

       -q, --quiet
              Do not complain if no processes were killed.

       -r, --regexp
              Interpret process name pattern as a POSIX extended regular expression, per regex(3).

       -s, --signal, -SIGNAL
              Send this signal instead of SIGTERM.

       -u, --user
              Kill only processes the specified user owns.  Command names are optional.

       -v, --verbose
              Report if the signal was successfully sent.

       -V, --version
              Display version information.

       -w, --wait
              Wait  for  all  killed processes to die.  killall checks once per second if any of the killed processes
              still exist and only returns if none are left.  Note that killall may wait forever if  the  signal  was
              ignored, had no effect, or if the process stays in zombie state.

       -y, --younger-than
              Match  only  processes that are younger (started after) the time specified.  The time is specified as a
              float then a unit.  The units are s,m,h,d,w,M,y for seconds, minutes, hours, days,  weeks,  Months  and
              years respectively.

       -Z, --context
              (SELinux  Only)  Specify  security context: kill only processes having security context that match with
              given extended regular expression pattern.  Must precede other arguments on the command line.   Command
              names are optional.

FILES
       /proc  location of the proc file system

KNOWN BUGS
       Killing  by file only works for executables that are kept open during execution, i.e. impure executables can't
       be killed this way.

       Be warned that typing killall name may not have the desired effect on non-Linux systems, especially when  done
       by a privileged user.

       killall  -w  doesn't detect if a process disappears and is replaced by a new process with the same PID between
       scans.

       If processes change their name, killall may not be able to match them correctly.

       killall has a limit of names that can be specified on the command line.  This figure is the  size  of  an  un‐
       signed  long  multiplied  by 8.  For most 32 bit systems the limit is 32 and similarly for a 64 bit system the
       limit is usually 64.
Created with love and passion.