# 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** , **--list**
           **killall -V** , **--version**
    


## DESCRIPTION



           **killall** sends  a  signal  to  all  processes  running  any of the
           specified commands.  If no signal name is  specified,  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 commands 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**
                  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 unsigned long integer
           multiplied by 8.  For most 32 bit systems the limit is 32 and
           similarly for a 64 bit system the limit is usually 64.
    


* * *