Learn to kill the process in Linux using kill, kill, and killall commands. Kill processes using PID or process name.
Windows users have a task manager where they can monitor running processes and choose to ‘End Task‘ to kill off unwanted/hung/less critical processes to save system resources. Same way, in Linux as well you can kill processes and save on your system resource utilization.
In this article we will walk through steps on how to kill the process in Linux using kill, kill, and killall commands. These three commands used to kill processes in a different manner. To proceed with you should know the concept of PID i.e. Process ID. It is the numeric value you will be used as an argument in kill commands.
What is PID?
PID is the Process ID, it’s a numeric identification of process in the kernel process table. Each process in Linux is identified by PID. PID 1 is always
init process in Linux whereas new Linux distributions like RHEL7 has systemd as a PID 1 process. It is the parent of all processes. If any process don’t have a parent or if its parent process is terminated abruptly (zombie process), PID 1 process takes over that child process.
The next question is how to find process id in Linux? It can be obtained using below several commands :
root@kerneltalks # ps -A PID TTY TIME CMD 1 ? 00:00:05 systemd 2 ? 00:00:00 kthreadd 3 ? 00:00:00 ksoftirqd/0 5 ? 00:00:00 kworker/0:0H 7 ? 00:00:00 migration/0 8 ? 00:00:00 rcu_bh root@kerneltalks # ps aux USER PID %CPU %MEM VSZ RSS TTY STAT START TIME COMMAND root 1 0.0 0.6 128164 6824 ? Ss Aug29 0:05 /usr/lib/systemd/systemd --switched-root --system --deserialize 20 root 2 0.0 0.0 0 0 ? S Aug29 0:00 [kthreadd] root 3 0.0 0.0 0 0 ? S Aug29 0:00 [ksoftirqd/0] root 5 0.0 0.0 0 0 ? S< Aug29 0:00 [kworker/0:0H] root@kerneltalks # pidof systemd 1
ps -A command you get a list of all running processes and their PID in the first column of the output. Grep out your desired process from the output. With
ps aux command you can see more information about processes with PID in the second column of the output. Alternatively, you can use
pidof command when you know the exact process name to get its only PID.
Now, you are ready with PID of the process to be killed. Let’s move on to killing it!
How to kill process in Linux?
There are a few limitations you should consider before killing any PID. They are as below –
- You can kill the process which is owned by your userid only.
- You can not kill system processes.
- Only the root user can kill other user’s processes.
- Only root can kill system using processes.
After fulfilling all above criteria, you can move ahead to kill PID.
Kill process using kill command
Kill command is used to send specific signals to specified PID. Signal numbers and PID you need to supply to command. The signal used are :
- 1 : Hung up
- 9 : Kill
- 15 : Terminate
Normally 9 signal is used (famous
kill -9 command) while 15 is used if 9 doesn’t work. Hung up signal is rarely used. Kill process using command syntex
kill -signal PID like –
root@kerneltalks # kill -9 8274
Kill process using pkill
If you want to use the process name instead of PID then you can use the pkill command. But remember to use the correct process name. Even a small typo can lead you to kill off unwanted processes. Syntex is simple, just specify process name to command.
root@kerneltalks # pkill myprocess
Kill process using killall
With the above two commands :
pkill, you are killing only a specific process whose PID or name is specified. This leads its child processes to hung or zombie. To avoid this situation, you can kill the process along with all its child processes using
root@kerneltalks # killall myprocess
As root you can kill any process including system ones on the Linux system. As a normal user you can kill processes owned by you only. Process ID i.e. PID can be obtained using command
pidof. This PID or process name can be used to kill the process using