Skip to main content

Command Palette

Search for a command to run...

How to Stop a Process in Linux

Updated
6 min read

Stopping a process in Linux is a common task you might need to do when a program freezes, consumes too many resources, or just needs to be restarted. Whether you're a beginner or have some experience with Linux, knowing how to stop a process safely and efficiently is essential. In this article, I’ll guide you through the most reliable methods to stop processes in Linux, using commands and tools that work across most distributions.

You’ll learn how to identify running processes, use commands like kill and pkill, and even stop processes by name or ID. By the end, you’ll feel confident managing processes on your Linux system without risking system stability.

Understanding Processes in Linux

Before stopping a process, it helps to understand what a process is in Linux. A process is simply a running instance of a program. Each process has a unique Process ID (PID), which you can use to manage it.

Processes can be in different states like running, sleeping, or stopped. When you want to stop a process, you’re usually sending it a signal to terminate or pause its execution.

How to Find Running Processes

To stop a process, you first need to find it. Here are some common ways to list processes:

  • ps command: Shows a snapshot of current processes.
    • Example: ps aux lists all running processes with details.
  • top or htop: Interactive tools that show real-time process activity.
  • pidof: Finds the PID of a process by name.
  • pgrep: Searches for processes based on name or other attributes.

Using these tools, you can identify the process you want to stop by its name or PID.

Using the kill Command to Stop a Process

The kill command is the most basic and widely used way to stop a process in Linux. It sends signals to processes, instructing them to terminate or perform other actions.

How to Use kill

  1. Find the PID of the process you want to stop. For example, to find the PID of Firefox:
    pidof firefox
    
  2. Use the kill command with the PID:
    kill <PID>
    
    This sends the default SIGTERM signal, which politely asks the process to terminate.

Common kill Signals

  • SIGTERM (signal 15): Graceful termination. Allows the process to clean up.
  • SIGKILL (signal 9): Forces immediate termination. Use if SIGTERM doesn’t work.
  • SIGSTOP: Pauses the process without terminating it.

Example

If Firefox’s PID is 1234, you can stop it by running:

kill 1234

If it doesn’t stop, force it with:

kill -9 1234

Using pkill and killall to Stop Processes by Name

Sometimes you don’t want to find the PID manually. Commands like pkill and killall let you stop processes by their name.

pkill

pkill sends signals to processes matching a pattern.

  • To stop all Firefox processes:
    pkill firefox
    
  • To force stop:
    pkill -9 firefox
    

killall

killall works similarly but may behave differently on some systems.

  • To stop all instances of a program:
    killall firefox
    
  • To force stop:
    killall -9 firefox
    

Both commands are handy when multiple instances of a program are running.

Stopping Processes Using System Monitor Tools

If you prefer a graphical interface, Linux offers system monitors that let you stop processes easily.

GNOME System Monitor

  • Open the System Monitor from your applications menu.
  • Find the process in the list.
  • Right-click and select “Kill” or “End Process.”

KDE System Monitor

  • Similar to GNOME’s tool.
  • Allows you to search and stop processes with a click.

These tools are user-friendly and good for beginners.

Using top and htop to Stop Processes Interactively

top and htop are terminal-based tools that show running processes and allow you to stop them interactively.

Using top

  • Run top in the terminal.
  • Press k to kill a process.
  • Enter the PID when prompted.
  • Choose the signal (default is 15).

Using htop

  • Run htop.
  • Use arrow keys to select the process.
  • Press F9 to kill.
  • Choose the signal and press Enter.

htop is more user-friendly and colorful, making it easier to manage processes.

When to Use SIGTERM vs SIGKILL

It’s important to understand when to use different signals.

  • SIGTERM (15): Always try this first. It lets the process close files and clean up.
  • SIGKILL (9): Use only if SIGTERM doesn’t work. It forces the process to stop immediately, which can cause data loss.

Avoid using SIGKILL unless necessary.

Stopping Zombie and Defunct Processes

Sometimes, processes become zombies or defunct, meaning they have completed but still appear in the process list.

  • These processes can’t be killed directly.
  • Usually, their parent process needs to be stopped or restarted.
  • Use ps -el | grep Z to find zombies.
  • Restarting the parent process or rebooting the system often clears them.

Automating Process Stopping with Scripts

If you frequently need to stop certain processes, you can automate the task with a simple shell script.

Example script to stop Firefox:

#!/bin/bash
pkill firefox

Make it executable with chmod +x script.sh and run it whenever needed.

Troubleshooting Common Issues

  • Permission denied: You might need to run commands with sudo if the process belongs to another user.
  • Process not found: Double-check the process name or PID.
  • Process restarts automatically: Some services restart automatically via systemd or other managers. You may need to stop the service instead.

Stopping Services vs Processes

Sometimes, you want to stop a service rather than just a process.

  • Use systemctl stop <service-name> to stop services managed by systemd.
  • Example: sudo systemctl stop apache2

Stopping a service stops all related processes cleanly.

Summary Table of Commands to Stop Processes

CommandUse CaseExample
kill <PID>Stop process by PIDkill 1234
kill -9 <PID>Force stop process by PIDkill -9 1234
pkill <name>Stop process by namepkill firefox
pkill -9 <name>Force stop by namepkill -9 firefox
killall <name>Stop all processes by namekillall firefox
top / htopInteractive process managementtop then k or htop then F9
systemctl stopStop system servicessudo systemctl stop nginx

Conclusion

Stopping a process in Linux is a straightforward task once you know the right commands and tools. Whether you prefer command-line methods like kill, pkill, and killall, or graphical tools like GNOME System Monitor, you have plenty of options. Always try to stop processes gracefully with SIGTERM before forcing termination with SIGKILL.

Remember to identify the correct process using tools like ps, top, or htop before stopping it. If you manage services, use systemctl to stop them cleanly. With these techniques, you can keep your Linux system running smoothly and handle any unresponsive or unwanted processes confidently.

FAQs

How do I find the PID of a process in Linux?

You can use ps aux | grep <process-name>, pidof <process-name>, or pgrep <process-name> to find the PID of a running process.

What is the difference between kill and pkill?

kill requires a PID to stop a process, while pkill stops processes by name or pattern, making it easier to target multiple processes.

Can I stop a process without root privileges?

You can stop processes you own without root access. To stop processes owned by other users, you need sudo or root privileges.

What happens if I use kill -9 on a process?

kill -9 sends the SIGKILL signal, forcing the process to stop immediately without cleanup, which can cause data loss or corruption.

How do I stop a system service in Linux?

Use sudo systemctl stop <service-name> to stop services managed by systemd, which stops all related processes cleanly.

More from this blog

L

LinuxBloke | Linux Tips, Tricks & Troubleshooting

672 posts

How to Stop a Process in Linux