Everything that is currently running on your Linux system is a process. Some processes are meant to run in the background (application updates, for example), so you may not be readily aware of their existence. And other processes (a web browser, for example) are very apparent, and get started or stopped by the user on a constant basis. All of these processes are assigned an ID number, called PID or “Process ID”, and can be referenced in various situations, including killing a running process via the process ID.
In this tutorial, you will learn how to kill a process by the ID number using the
kill Linux command. While there are usually “cleaner” methods for closing a process, killing it can prove useful if a process is hung up or frozen, or is causing some kind of damage that justifies its immediate termination. Let’s look at a few examples below to see how we can kill a process by ID.
In this tutorial you will learn:
- How to see a list of running processes
- How to kill a process via PID number
|Category||Requirements, Conventions or Software Version Used|
|System||Any Linux distro|
|Software||kill, ps, top|
|Other||Privileged access to your Linux system as root or via the
# – requires given linux commands to be executed with root privileges either directly as a root user or by use of
$ – requires given linux commands to be executed as a regular non-privileged user
How to Find a Process ID Number
In order to kill a process via its ID number, we must first know which number has been assigned to the relevant process. The ps command is the best way to ascertain a process ID number. Using this command with the
-eoption should give us all the information we need to know about the running processes on our system.
$ ps -e
The left column shows all of the PID numbers for each process. This can produce a lot of output, because even a fresh installation of Linux can have quite a few running processes, so it is usually better to pipe this command to
For a more manageable view:
$ ps -e | less
Or to look for a specific process (ssh in this example):
$ ps -e | grep ssh
Another handy way to see a list of running processes and their PIDs is with the top command. Sometimes this is even more useful, since it also shows how much system resources are being used by the processes.
How to Kill a Process by ID
Once you have determined the PID of the process you wish to end, you can specify it as an argument to the
kill command. For example, to end a process with a PID of 1234:
$ kill 1234
This command sends a
SIGTERM signal and should be able to shut down most processes within a second or two. Remember that you can use the
ps command again to verify that the process has closed successfully.
$ ps -e | grep 1234
If the process refuses to close, you can force it to close immediately by sending a
SIGKILL signal to the process. This can be accomplished by using the
$ kill -9 1234
When possible, you should send an ordinary
SIGTERMsignal to a process that you wish to end. Immediately killing a service with a
SIGKILLsignal is effective every time and will give you instant results, but can cause future problems since the process did not get a chance to shut down properly.
Other Kill Options
SIGKILL are probably the only two signals you will need to use, but there are many others that you can send with the
kill command. The following command will output a full list:
$ kill -L
It is good to at least be aware of the other options, since some programs or scripts may recommend their use. As you can see in the output,
SIGKILL is listed at #9, which is why the
-9 switch sends the
SIGKILL signal. Specify a different number to send its respective signal to a process.
In this tutorial, we saw how to kill any process running on a Linux system by using the
kill command. We saw how to identify the process ID for any running process, and then use this information to terminate the process. We learned about the
SIGKILL signals, and how to determine which signal is better for a given scenario. Armed with this information, you can now close any process on your Linux system, either gracefully with
SIGTERM or abruptly with