130 lines
		
	
	
		
			3.2 KiB
		
	
	
	
		
			Markdown
		
	
	
	
	
	
		
		
			
		
	
	
			130 lines
		
	
	
		
			3.2 KiB
		
	
	
	
		
			Markdown
		
	
	
	
	
	
|   | # The `killall` command
 | ||
|  | 
 | ||
|  | `killall` sends a signal to **all** processes running any of the specified commands.  If no signal name is specified, `SIGTERM` is sent. In general, `killall` command kills all processes by knowing the name of the process. | ||
|  | 
 | ||
|  | 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 a 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). | ||
|  | 
 | ||
|  | ### Examples:
 | ||
|  | 
 | ||
|  | 1. Kill all processes matching the name `conky` with `SIGTERM`: | ||
|  | 
 | ||
|  | ```sh | ||
|  | killall conky | ||
|  | # OR
 | ||
|  | killall -SIGTERM conky | ||
|  | # OR
 | ||
|  | kilall -15 conky | ||
|  | ``` | ||
|  | 
 | ||
|  | I was able to kill Wine ( which are Windows exe files running on Linux ) applications this way too. | ||
|  | 
 | ||
|  | ```sh | ||
|  | killall TQ.exe | ||
|  | ``` | ||
|  | 
 | ||
|  | 2. List all the supported signals: | ||
|  | 
 | ||
|  | ```sh | ||
|  | $ 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 | ||
|  | ``` | ||
|  | 
 | ||
|  | As for the numbers. | ||
|  | 
 | ||
|  | ```sh | ||
|  | $ for s in $(killall -l); do echo -n "$s " && kill -l $s; done | ||
|  | HUP 1 | ||
|  | INT 2 | ||
|  | QUIT 3 | ||
|  | ILL 4 | ||
|  | TRAP 5 | ||
|  | ABRT 6 | ||
|  | BUS 7 | ||
|  | FPE 8 | ||
|  | KILL 9 | ||
|  | USR1 10 | ||
|  | SEGV 11 | ||
|  | USR2 12 | ||
|  | PIPE 13 | ||
|  | ALRM 14 | ||
|  | TERM 15 | ||
|  | STKFLT 16 | ||
|  | CHLD 17 | ||
|  | CONT 18 | ||
|  | STOP 19 | ||
|  | TSTP 20 | ||
|  | TTIN 21 | ||
|  | TTOU 22 | ||
|  | URG 23 | ||
|  | XCPU 24 | ||
|  | XFSZ 25 | ||
|  | VTALRM 26 | ||
|  | PROF 27 | ||
|  | WINCH 28 | ||
|  | POLL 29 | ||
|  | PWR 30 | ||
|  | SYS 31 | ||
|  | ``` | ||
|  | 
 | ||
|  | 3. Ask before killing, to prevent unwanted kills: | ||
|  | 
 | ||
|  | ```sh | ||
|  | $ killall -i conky | ||
|  | Kill conky(1685) ? (y/N) | ||
|  | ``` | ||
|  | 
 | ||
|  | 4. Kill all processes and wait until the processes die. | ||
|  | 
 | ||
|  | ```sh | ||
|  | killall -w conky | ||
|  | ``` | ||
|  | 
 | ||
|  | 5. Kill based on time: | ||
|  | 
 | ||
|  | ```sh | ||
|  | # Kill all firefox younger than 2 minutes
 | ||
|  | killall -y 2m  firefox | ||
|  | 
 | ||
|  | # Kill all firefox older than 2 hours
 | ||
|  | killall -o 2h  firefox | ||
|  | ``` | ||
|  | 
 | ||
|  | ### Syntax:
 | ||
|  | 
 | ||
|  | ```sh | ||
|  | killall [OPTION]... [--] NAME... | ||
|  | killall -l, --list | ||
|  | killall -V, --version | ||
|  | ``` | ||
|  | 
 | ||
|  | ### Additional Flags and their Functionalities:
 | ||
|  | 
 | ||
|  | |**Short Flag**   |**Long Flag**   |**Description**   | | ||
|  | |:---|:---|:---| | ||
|  | |`-e`|`--exact`|require  an  exact  match for very long names| | ||
|  | |`-I`|`--ignore-case`|case insensitive process name match| | ||
|  | |`-g`|`--process-group`|kill process group instead of process| | ||
|  | |`-y`|`--younger-than`|kill processes younger than TIME| | ||
|  | |`-o`|`--older-than`|kill processes older than TIME| | ||
|  | |`-i`|`--interactive`|ask for confirmation before killing| | ||
|  | |`-l`|`--list`|list all known signal names| | ||
|  | |`-q`|`--quiet`|don't print complaints| | ||
|  | |`-r`|`--regexp`|interpret NAME as an extended regular expression| | ||
|  | |`-s`|`--signal SIGNAL`|send this signal instead of SIGTERM| | ||
|  | |`-u`|`--user USER`|kill only process(es) running as USER| | ||
|  | |`-v`|`--verbose`|report if the signal was successfully sent| | ||
|  | |`-w`|`--wait`|wait for processes to die| | ||
|  | |`-n`|`--ns PID`|match processes that belong to the same namespaces as PID | ||
|  | |`-Z`|`--context`|REGEXP kill only process(es) having context (must precede other arguments) | ||
|  | 
 | ||
|  | ### Related commands
 | ||
|  | 
 | ||
|  | [kill](/ebook/en/content/034-the-kill-command.md), `pidof` |