Skip to main content

Command Palette

Search for a command to run...

How to Find a PID in Linux

Published
7 min readView as Markdown

Finding the Process ID (PID) in Linux is a common task you’ll often need when managing or troubleshooting your system. Whether you want to stop a program, check its status, or monitor its resource usage, knowing the PID is essential. Luckily, Linux offers several easy ways to find this number.

In this article, I’ll walk you through the most popular methods to find a PID in Linux. You’ll learn how to use commands like ps, pidof, and top, plus some handy tips for more advanced searches. By the end, you’ll feel confident tracking down any process ID quickly and efficiently.

What Is a PID and Why Is It Important?

A PID, or Process ID, is a unique number assigned by the Linux kernel to every running process. It helps the system keep track of each program or task. When you want to manage a process—like stopping it or checking its memory use—you need its PID.

Here’s why PIDs matter:

  • Process management: Commands like kill require a PID to stop a process.
  • Monitoring: Tools like top and htop show resource use by PID.
  • Debugging: Developers use PIDs to attach debuggers or trace system calls.
  • Automation: Scripts often use PIDs to control background jobs.

Understanding how to find a PID is a basic but powerful skill for anyone using Linux.

Using the ps Command to Find a PID

The ps command is one of the most common ways to find PIDs. It lists running processes and their details. You can filter its output to find the PID of a specific program.

Basic Usage

To see all your running processes with their PIDs, type:

ps

This shows processes running in the current shell session. For more details, use:

ps aux

This lists all processes on the system with columns for PID, CPU, memory, and more.

Finding a PID by Process Name

If you want to find the PID of a specific program, combine ps with grep. For example, to find the PID of Firefox:

ps aux | grep firefox

This shows all processes with "firefox" in their name. The PID is in the second column.

Tips for Using ps

  • Use ps -ef for a full-format listing.
  • Combine with grep -v grep to exclude the grep process itself.
  • Use awk or cut to extract just the PID if needed.

Example to get only the PID of Firefox:

ps aux | grep firefox | grep -v grep | awk '{print $2}'

This command prints just the PID number.

Using pidof to Quickly Find a PID

The pidof command is a simple way to find the PID of a running program by its name. It returns the PID(s) directly without extra details.

How to Use pidof

Just type:

pidof program_name

For example:

pidof sshd

This will print the PID(s) of the SSH daemon.

Advantages of pidof

  • Fast and straightforward.
  • Returns only the PID(s), making it easy to use in scripts.
  • Works well for programs with a single instance.

Limitations

  • Some programs may have multiple instances; pidof returns all PIDs.
  • It may not work for scripts or processes without a clear executable name.

Using top and htop to Find PIDs Interactively

If you prefer a visual approach, top and htop are interactive tools that show running processes and their PIDs in real-time.

Using top

Run:

top

You’ll see a list of processes sorted by CPU usage. The PID is in the first column. You can search for a process by typing / followed by the name.

Using htop

htop is a more user-friendly alternative to top. It shows color-coded output and allows you to scroll and search easily.

To start:

htop

Use the F3 key to search for a process by name. The PID is displayed in the leftmost column.

Benefits of Interactive Tools

  • Real-time monitoring of processes.
  • Easy to find PIDs visually.
  • Useful for checking resource usage alongside PIDs.

Finding PIDs for Background or Daemon Processes

Sometimes, you need to find PIDs for background services or daemons. These processes often run without a terminal.

Using pgrep

pgrep is a handy command that searches for processes by name and returns their PIDs.

Example:

pgrep nginx

This returns the PID(s) of the Nginx web server.

Using /proc Directory

Linux stores process info in the /proc directory. Each running process has a folder named after its PID.

To find a PID by process name:

ls /proc | grep -E '^[0-9]+$' | while read pid; do
  if grep -q 'process_name' /proc/$pid/cmdline 2>/dev/null; then
    echo $pid
  fi
done

Replace process_name with the actual name. This method is more advanced but useful for scripting.

Using System Monitoring Tools to Find PIDs

Many graphical system monitors also show PIDs. For example:

  • GNOME System Monitor: Shows processes with their PIDs.
  • KDE System Monitor: Similar functionality.
  • Other third-party tools: Like glances or bashtop.

These tools are helpful if you prefer a GUI over the command line.

Practical Examples of Finding a PID

Here are some real-world examples you might find useful:

  • Kill a process by name:
kill $(pidof firefox)
  • Check if a process is running:
if pgrep -x "nginx" > /dev/null; then
  echo "Nginx is running"
else
  echo "Nginx is not running"
fi
  • Find PID and monitor CPU usage:
top -p $(pidof mysqld)

These examples show how finding a PID fits into everyday Linux tasks.

Troubleshooting When You Can’t Find a PID

Sometimes, you might not find a PID even if you expect the process to be running.

Common Reasons

  • Process name is misspelled.
  • The process runs under a different user.
  • The process is very short-lived.
  • You lack permissions to see the process.

Solutions

  • Use sudo to run commands with elevated privileges.
  • Double-check the exact process name with ps aux.
  • Use broader search terms or check logs.

Summary Table of Commands to Find PID

CommandDescriptionExample
`ps auxgrep`Search processes by name`ps auxgrep sshd`
pidofGet PID(s) by program namepidof nginx
pgrepSearch for PID by process namepgrep apache2
topInteractive process viewertop
htopEnhanced interactive viewerhtop
/proc directoryManual search in process filesScript example above

Conclusion

Finding a PID in Linux is easier than you might think. Whether you prefer command-line tools like ps, pidof, or pgrep, or interactive programs like top and htop, there’s a method that fits your style. Knowing how to find a PID helps you manage processes, troubleshoot issues, and automate tasks effectively.

Next time you need to stop a program or check its status, you’ll know exactly where to look. Practice these commands, and you’ll become more comfortable navigating Linux processes. Remember, the PID is your key to controlling what’s running on your system.

FAQs

How do I find the PID of a process by its name?

Use pidof process_name or pgrep process_name to get the PID(s) quickly. You can also use ps aux | grep process_name for more details.

Can a process have more than one PID?

No, each process has a unique PID. However, multiple instances of the same program will have different PIDs.

How do I find the PID of a process running as another user?

Run commands with sudo, like sudo ps aux | grep process_name, to see processes owned by other users.

What is the difference between pidof and pgrep?

pidof returns PIDs of a program by name, mainly for executables. pgrep is more flexible and can match patterns in process names.

How can I find the PID of a background job I started?

Use jobs -l in the shell to list background jobs with their PIDs, or use ps with grep to find the process by name.

More from this blog

L

LinuxBloke | Linux Tips, Tricks & Troubleshooting

672 posts