How to check whether a process with a given PID is running

As a system administrator or developer, it's important to be able to monitor and manage processes running on your system. One of the key pieces of information you need to know is whether a particular process is currently running. In this article, we'll explore different ways to check whether a process with a given PID is running.

What is a PID?

Before we dive into ways to check if a process with a given PID is running, let's first define what a PID is. A PID (Process Identifier) is a unique identification number assigned to each process running on a system. This number is used by the operating system to keep track of and manage processes.

Using ps Command

One of the easiest ways to check whether a process with a given PID is running is to use the ps command. The ps command is used to display information about currently running processes on a system.

To check whether a process with a given PID is running using the ps command, run the following command

ps -p <PID>

Replace <PID> with the PID of the process you want to check.

If the process is running, you will see output similar to the following

  PID TTY          TIME CMD
 1234 pts/0    00:00:00 bash

The output shows the process ID (PID), the terminal it's running on (TTY), the amount of CPU time it has used (TIME), and the command that started the process (CMD).

If the process is not running, you will not see any output and the command will return a non-zero exit status.

Using kill Command with Signal 0

The kill command is used to send a signal to a process. One of the signals that can be sent is the 0 signal, which does not actually kill the process, but instead checks whether it's running.

To check whether a process with a given PID is running using the kill command, run the following command

kill -0 <PID>

Replace <PID> with the PID of the process you want to check.

If the process is running, you will not see any output and the command returns exit status 0.

If the process is not running, you will see an error message similar to the following

kill: (1234) - No such process

Checking /proc Directory

In Linux systems, each running process has a directory in /proc named after its PID. You can check if a process is running by testing if this directory exists.

To check using the /proc directory

ls /proc/<PID> > /dev/null 2>&1

Or test directly in a script

if [ -d "/proc/<PID>" ]; then
    echo "Process is running"
else
    echo "Process is not running"
fi

Script Example for Process Checking

Here's a practical script example that checks if a process is running and provides clear output

#!/bin/bash
PID=$1

if [ -z "$PID" ]; then
    echo "Usage: $0 <PID>"
    exit 1
fi

if ps -p $PID > /dev/null 2>&1; then
    echo "Process $PID is running"
    ps -p $PID
else
    echo "Process $PID is not running"
fi

Comparison of Methods

Method Output if Running Output if Not Running Exit Status
ps -p <PID> Process details No output 0 / 1
kill -0 <PID> No output Error message 0 / 1
[ -d "/proc/<PID>" ] Directory exists Directory missing 0 / 1

Additional Tips

  • Use htop command for a more interactive and user-friendly process viewer. htop allows you to sort and filter processes, and provides more detailed information about CPU usage, memory usage, and other metrics.

  • You can use lsof command to check whether a process has open files or network connections. For example, to check whether a process with PID 1234 has any open files

lsof -p 1234
  • For checking remote processes, you can use ssh to run commands on remote systems

ssh 192.168.1.100 ps -p 1234

Conclusion

Checking whether a process with a given PID is running is an essential skill for system administrators and developers. The most reliable methods include using ps -p, kill -0, or checking the /proc directory. Each method has its advantages ps provides detailed process information, kill -0 is lightweight and portable, while /proc checking is fast and direct for Linux systems.

Updated on: 2026-03-17T09:01:38+05:30

19K+ Views

Kickstart Your Career

Get certified by completing the course

Get Started
Advertisements