Michael O.
2min Read

Linux Basics – the ‘kill’ command and process signals

Linux Basics - the 'kill' command and process signals

The kill command is used in Linux to terminate a running process. Various signals may be passed via the kill command to either terminate the process gracefully, tell the process to restart or to shut it down forcefully. We will first cover the process table and then some commonly used signals.


Process Table

The process table describes all the processes that are currently loaded. The ps command shows the processes. By default, it shows only processes that maintain a connection with a terminal, a console, a serial line, or a pseudo terminal. Other processes that can run without communication with a user on a terminal are system processes that Linux manages shared resources. To see all processes, we use -e option and -f to get full information (ps -ef). Below is some sample output from ps -ef.

UID        PID  PPID  C STIME TTY          TIME CMD
root         1     0  0  2010 ?        00:01:48 init 
root     21033     1  0 Apr04 ?        00:00:39 crond
root     24765     1  0 Apr08 ?        00:00:01 /usr/sbin/httpd

Note that the init process is always PID (Process Identifier) one. Killing this process is not recommended unless you plan on crashing your system. Below is an image depicting the logic behind the process control and state. The PID for other processes is an integer between 2 and 32,768.

Linux Baics - the kill command


Process Signals

The entries in the “Action” column of the tables below specify the default disposition for each signal, as follows:

  • Term*   Default action is to terminate the process.
  • Ign      Default action is to ignore the signal.
  • Core   Default action is to terminate the process and dump core.
  • Stop   Default action is to stop the process.
  • Cont   Default action is to continue the process if it is currently stopped.

99% of the time we will be using a Terminate switch such as SIGHUP,SIGTERM or SIGKILL.

The signals SIGKILL and SIGSTOP cannot be caught, blocked or ignored.Linux Signals


Kill command to forcefully kill a process

kill -9 is used to forcefully terminate a process in Linux ( 9 = SIGKILL ). The syntax of kill command is:

ps -ef| grep process_identifier // will give you PID
kill -9 PID

Killing Multiple Processes

With kill command, you can specify multiple PID’s at the same time and all the processes will be signaled as per the example below:

kill -9 pid1 pid 2

You can also script a kill if there are many of the same processes as follows:

for ID in $(ps -ef |grep process_identifier |grep -v grep |awk '{print $2}'); do kill -9 $ID ;  done

---- OR ------

for ID in $(pgrep process_identifier); do kill -9 $ID ; done

Hopefully, these tips will help you to your path to a top Linux Administrator.

Happy Hosting!


The Author

Michael O.

Michael is the founder, managing director, and CEO of HOSTAFRICA. He studied at Friedrich Schiller University Jena and was inspired by Cape Town's beauty to bring his German expertise to Africa. Before HOSTAFRICA, Michael was the Managing Director of Deutsche Börse Cloud Exchange AG, one of Germany's largest virtual server providers.

More posts from Michael