This article will discuss a difference between kill vs killall commands. Killing processes on a Linux is an essential thing for admins and users to know. At some point, you’ll encounter an application or services that hangs and freezes, and you’ll need to kill the process to exit it.
The Linux command line offers a few different ways for us to kill processes. Having multiple tools for the job, as is common on Linux, is convenient but creates some confusion as they all have a little functional overlap.
In this tutorial, we’ll explain the difference between the kill
and killall
commands on Linux. You’ll also see examples of how to use each command.
In this tutorial you will learn:
- Difference between
kill
vskillall
- How to kill processes with
kill
andkillall
commands - Using
kill -9
andkillall -9
commands

Category | Requirements, Conventions or Software Version Used |
---|---|
System | Any Linux distro |
Software | kill, killall |
Other | Privileged access to your Linux system as root or via the sudo command. |
Conventions | # – requires given linux commands to be executed with root privileges either directly as a root user or by use of sudo command$ – requires given linux commands to be executed as a regular non-privileged user |
kill vs killall – What’s the difference?
As is obvious from the names,
kill
will terminate a process and killall
can terminate multiple processes simultaneously.
The best way to understand the difference is by looking at some examples:
- To kill a process on Linux, use the
kill
command and specify the process ID you are planning to terminate.$ kill 1234
- The
killall
command works a little differently by accepting the name of a process to end, and by killing all processes that match the name you specify.$ killall firefox
In this example, all of the processes named “firefox” would be terminated. It doesn’t matter if you have only 1 Firefox window open, or 50. They’ll all be closed after running the
killall
command. - Note that you can still end multiple processes at once with the normal
kill
command, but you would need to specify each process ID that you wish to terminate.$ kill 1234 1233 1232
So, there are two key differences:
kill
accepts process ID numbers as an argument, and only kills one process at a time (unless you specify multiple process IDs in your command)killall
allows us to kill processes by name and will end all processes that have a matching name

kill -9 vs killall -9
By default, kill
and killall
will try to stop a process as gracefully as possible. Both will send a SIGTERM signal to the specified process, and that instructs the process to shut down. It’s a polite way to end a running process, and gives the application or service time to wrap things up first – like finish writing to log files, close opened connections that were spawned by the process, etc.
The only problem with this is that a stubborn program may ignore the SIGTERM signal. This occurs especially in a process that is frozen or “hung up.” However, kill
and killall
can be used to send a lot of different signals to a process, and can even force the most stubborn ones to close with a SIGKILL signal.
To send a SIGKILL signal with either kill
or killall
, you would use the following command syntax:
- Forcefully close a process by sending a SIGKILL signal with
kill
:$ kill -9 1234
- Forcefully close a process or multiple processes by sending a SIGKILL signal with
killall
:$ killall -9 firefox
When possible, you should send an ordinary SIGTERM signal to a process that you wish to end. Immediately killing a service with a SIGKILL signal is effective every time and will give you instant results, but can cause future problems since the process didn’t get a chance to shut down properly.
Closing Thoughts
In this guide, we learned the difference between the kill
and killall
commands on Linux. We also saw examples for using each one to send SIGTERM
or SIGKILL
signals to one or more processes. For further reading, check out our article on the pkill command, which works similarly to killall
but doesn’t require exact name matching.