Log In

Using killall and kill Commands to Stop Processes on Linux

Using killall and kill Commands to Stop Processes on Linux
26.06.2024
Reading time: 4 min
Hostman Team
Technical writer

Effective process management is crucial for maintaining system performance and stability on Linux. Processes can sometimes become unresponsive or consume excessive resources, requiring intervention to stop them. This tutorial will guide you through using the killall and kill commands to manage and terminate processes on a Linux system.

Differences Between killall and kill

Understanding the differences between killall and kill is essential for proper process management:

  •  killall: Terminates all instances of a process based on its name.

  •  kill: Terminates a specific process based on its Process ID (PID).

These commands offer flexibility depending on whether you need to stop one specific process or all instances of a particular process.

Basic Usage of the kill Command

The kill command sends a signal to a process identified by its PID. By default, it sends the SIGTERM signal, which requests the process to terminate gracefully.

kill [options] <PID>

Example:

To terminate a process with PID 1234, use:

kill 1234

This sends the SIGTERM signal. To forcefully kill the process, use the SIGKILL signal:

kill -9 1234

Finding Process IDs (PIDs)

Before using the kill command, you need to find the PID of the process. This can be done using utilities like ps, pgrep, top, or htop.

Using ps

The ps command displays information about running processes. To filter the list of processes by name, use grep:

ps aux | grep <process_name>

Example:

ps aux | grep firefox

Output:

244fd295 436c 42df A867 Eed49a7302ce

In this example, 167479 is the PID of the firefox process.

Using pgrep

The pgrep command directly searches for processes by name and returns their PIDs:

pgrep <process_name>

Example:

pgrep firefox

Output:

B0a3d04d E905 4361 9261 B615f6b2ec37

Using killall to Stop Processes by Name

The killall command terminates all processes that match a specified name. By default, it sends the SIGTERM signal.

killall [options] <process_name>

Example:

To terminate all processes named firefox:

killall firefox

To send a different signal, such as SIGKILL, use the -s option:

killall -s 9 firefox

Other ways to specify SIGKILL:

killall -KILL firefox
killall -SIGKILL firefox
killall -9 firefox

Sending Different Signals with kill and killall

Different signals can be sent to processes to achieve various effects. Common signals include:

  • SIGTERM (15): Terminate the process gracefully (default).

  • SIGKILL (9): Forcefully kill the process.

  • SIGINT (2): Interrupt the process (similar to pressing Ctrl+C).

Sending Signals with kill

To send SIGKILL:

kill -9 <PID>

To send SIGINT:

kill -2 <PID>

Sending Signals with killall

To send SIGKILL:

killall -9 <process_name>

To send SIGINT:

killall -2 <process_name>

Practical Examples and Use Cases

For better understanding, here are a few examples of process management.

Stopping a Process by PID

1. Find the PID: Use ps or pgrep to find the PID of the process.

pgrep firefox

Output:

Image4

2. Kill the Process: Use the kill command with the PID.

kill 167479

Stopping All Processes by Name

1. Kill All Processes: Use killall to terminate all instances of a process.

killall firefox

Using SIGINT to Interrupt a Process

1. Send SIGINT: Use the kill command with the -2 option.

kill -2 <PID>

2. Send SIGINT with killall: Use the killall command with the -2 option.

killall -2 firefox

Finding and Managing Processes

For real-time monitoring of system processes, use top or htop.

  • top: Basic real-time view of processes.
top

Output:

Image4

  • htop: Enhanced real-time view with a user-friendly interface.
htop

Output:

Image3

Conclusion

Managing processes on a Linux system is essential for maintaining system performance and stability. The kill and killall commands are powerful tools for terminating processes by PID or name, respectively. By mastering these commands, users can efficiently manage and stop processes, ensuring optimal system performance.

Understanding and utilizing the killall and kill commands allows for efficient process management on Linux. By following this tutorial, users can confidently manage and terminate processes, ensuring optimal system performance.


Share