How to Kill a Process in Linux from Command Line?

December 13, 2023

Introduction

If a Linux process becomes unresponsive or consumes too many resources, you may need to kill it. Most processes have their own methods of shutting down. Unfortunately, processes can malfunction and require running a command to manually kill it.

This guide will show you how to kill a Linux process using the command line.

How to kill a process in Linux using the command line - a tutorial.

Prerequisites

  • A system running Linux.
  • A user account with root privileges.
  • Access to the terminal.

How to Find Process ID or Process Name

Before killing a process, you need to locate it. Processes can be found by the process name (or a partial process name) or the process ID (also known as a PID).

There are multiple ways to find a process in Linux:

  • Via the ps command.
  • Via the pgrep or pidof command.
  • Via the top command.

The sections below show different ways to search for a process in Linux.

Locate a Process with ps Command

The ps command provides a complete listing of running processes, formatted based on the tags you add. The syntax for the ps command is:

ps [options]

The most common options to add to ps are:

  • -a. View processes of all users rather than just the current user.
  • -u. Provide detailed information about each of the processes.
  • -x. Include processes that are controlled not by users but by daemons.

For example, the command ps -aux returns a detailed list of all processes:

The ps command output example on Linux.

Find PID with pgrep or pidof

The pgrep Linux command is a more complex way of finding a process. The pgrep command returns processes based on specific selection criteria, known as the pattern. The pattern is a regular expression, such as a*, where * is a wildcard.

pgrep [options] [pattern]

The options that can be used with pgrep are:

  • -l. List the process names and the PIDs.
  • -n. Return the newest process.
  • -o. Return the oldest process.
  • -u. Only find processes that belong to a specific user.
  • -x. Only find processes that exactly match the given pattern.

For example, the command pgrep -l -u root displays the names and PIDs of all processes owned by root:

Listing the running processes using the pgrep command.

The pidof command is used to find the ID of a process, provided that you know the process name.

pidof [options] [program]

Some of the options that pidof accepts are:

  • -c. Only return PIDs within a single root directory.
  • -o. Omit certain PIDs (include the processes to omit after the flag).
  • -s. Only return a single PID.
  • -x. Also returns PIDs of shells that are running scripts.

For example, to get the PID of the snapd process, run pidof snapd:

Getting the process ID using the pidof command.

View Running Processes with top

The top command is the easiest way to get a complete overview of the currently running processes. To view a list of all active processes, run the command:

top

The top command interactive mode starts, shows the process IDs, the users, the amount of memory and CPU power each process uses, the running time, etc.

Listing running processes using the top command.

To exit the top interface, press q.

How to Kill a Process

Make sure to consider permissions before killing or terminating a process. A root user can kill all processes. You can either add sudo before a command to run it as root, or obtain a root shell with su. Then, execute the termination command.

Killing a process sends a termination message to the given process. There are multiple types of termination messages, including:

  • SIGKILL - The ultimate way of killing a process. It always kills a process abruptly, generating a fatal error. SIGKILL should always work. If it doesn't, the operating system has failed.
  • SIGTERM - It attempts to kill a process, but, unlike SIGKILL, it may be blocked or otherwise handled. It is a gentler way of terminating a process.

For most purposes, SIGKILL is the fastest and most effective method to terminate the process.

The sections below list the most commonly used commands for killing a process and provide the steps for using each command.

killall Command

The killall command kills processes by their name. By default, it sends a SIGTERM signal. The killall command can kill multiple processes with a single command. The syntax is:

killall [process]

The killall command accepts several options:

  • -e. Find an exact match for the process name.
  • -I. Ignore the case when trying to find the process name.
  • -i. Ask for additional confirmation when killing the process.
  • -u. Only kill processes owned by a specific user.
  • -v. Report back on whether the process has been successfully killed.

The following example shows the use of the -i option, instructing killall to ask for confirmation before terminating the process:

Killing a process using the killall command.

In addition to killing processes based on name, the killall command can also be used to kill based on the age of the process. Use the following commands:

  • -o. Use this flag with a duration to kill all processes that have been running for more than that amount of time.
  • -y. Use this flag with a duration to kill all processes that have been running for less than that amount of time.

The killall -o 15m command kills all processes that are older than 15 minutes, while the killall -y 15m command kills all processes that have been active for less than 15 minutes.

pkill Command

The pkill command is similar to the pgrep command, in that it kills a process based on the process name, in addition to other qualifying factors. By default, pkill sends the SIGTERM signal. The syntax is:

pkill [options] [pattern]

pkill options include:

  • -n. Only kill the newest of the processes that are discovered.
  • -o. Only kill the oldest of the processes that are discovered.
  • -u. Only kill the processes owned by the specified user.
  • -x. Only kill the processes that match the pattern exactly.
  • -signal. Send a specific signal to the process, rather than SIGTERM.

The following example demonstrates how to kill the newest process created by the user bosko:

pkill -n -u bosko

kill Command

The kill command terminates processes via the process ID. The syntax is:

kill [process ID]

The kill command kills a single process at a time with the given process ID. It sends a SIGTERM signal instructing a process to stop. It waits for the program to run its shutdown routine.

The -signal option can be used to specify a signal other than SIGTERM.

kill -9 Linux Command

kill -9 is a useful command when you must shut down an unresponsive service. Run it similarly to the regular kill command:

kill -9 [processID]

Or:

kill -SIGKILL [processID]

The kill -9 command sends a SIGKILL signal to a service, shutting it down immediately. An unresponsive program ignores a kill command, but it shuts down whenever a kill -9 command is issued. Use this command with caution since it bypasses the standard shutdown routine, and any unsaved data will be lost.

xkill command

The xkill command is a special command that closes a given server's connection to clients. The syntax of the xkill command is:

xkill [resource]

If a server has opened some unwanted processes, xkill aborts these processes.

If xkill is run without specifying a resource, then an interface opens up to let the user select a window to close. For example:

Killing processes using xkill in Linux.

top Command

The top command provides an interface through which a user can navigate the currently running processes. To start the interface, run the command:

top

To kill a specific process, press k when in the interface, and then enter the PID of the process you want to terminate:

Killing a process using the top command.

Note: Learn how to use the nohup command to block the SIGHUP signal and allow processes to complete even after logging out from the terminal/shell.

Conclusion

In this article, we covered several ways to kill processes in Linux. It is critical to learn and understand these Linux termination commands for system management and administration.

Next, check out our comprehensive article on Linux network commands, or take a sneak peek at our ultimate list of Linux commands.

Was this article helpful?
YesNo
Vladimir Kaplarevic
Vladimir is a resident Tech Writer at phoenixNAP. He has more than 7 years of experience in implementing e-commerce and online payment solutions with various global IT services providers. His articles aim to instill a passion for innovative technologies in others by providing practical advice and using an engaging writing style.
Next you should read
How to Create a File in Linux Using Terminal/Command Line
November 7, 2023

Creating a file in Linux might seem straightforward, but there are some surprising and clever techniques. In ...
Read more
How to List Users in Linux, List all Users Command
August 4, 2022

Linux OS is unique because of its multiuser characteristic. It allows multiple users on one system, at the ...
Read more
How to Use mkdir Command to Make or Create a Linux Directory
December 1, 2023

The mkdir command in Linux allows users to create or make new directories. mkdir stands for make directory.
Read more
How To Use grep Command In Linux/UNIX
February 29, 2024

This guide details the most useful grep commands for Linux / Unix systems. After going through all the ...
Read more