Pidof Command in Linux

Introduction

Before we start discussing about pidof command in linux, let's first understand-What is a Pidof Command ?

The pidof command in Linux is used to find the process ID (PID) of a running program. It allows you to search for the PID of a process using its name. The pidof command is particularly useful when you need to identify the PID of a program for further process management, monitoring, or troubleshooting purposes

In this tutorial, we'll show you how to use the Linux pidof.

How to Use the pidof Command

For Red Hat and Debian-based distributions, there are many pidof implementations. The pidof command is part of the procps-ng package on Red Hat distributions, while it is part of sysvinit-utils on Debian. We'll go over the choices that both implementations have in common.

The pidof command has the following syntax:

pidof [OPTIONS] PROGRAM_NAME

Although pidof allows zero or more names as parameters, you should usually only give it one.

PIDs of all running programs that match the supplied name will be printed if pidof is called without any options. To find the PID of the SSH server, for example, type:

pidof sshd

The PIDs of any running processes with names that match sshd will be displayed on the screen. The output will be empty if no matches are detected.

Output

4382 4368 811

When at least one running program matches the given name, pidof returns 0. Otherwise, 1 is the exit code. When building shell scripts, this can come in handy.

Use the entire pathname to the program as a parameter to ensure that just the PIDs of the application you're looking for is displayed. If you have two running programs with the same name in two distinct folders, pidof will display the PIDs of each of them.

All PIDs of the matching running applications are displayed by default. To compel pidof to display only one PID, use the -s option:

pidof -s program_name

You can use the -o option to exclude a process with a specific PID from the command output:

pidof -o pid program_name

When using the -o option with pidof, a special PID named %PPID can be used to represent the calling shell or shell script.

Use the -c option to get just the PIDs of processes that are executing in the same root directory.

This option is only applicable in certain circumstances. pidof is executed as root or as the sudo user:

pidof -c pid program_name

Example Usage of the pidof Command

The following example demonstrates how to terminate a program using the pidof command in conjunction with the killcommand.

Assume that your Firefox browser has become unresponsive, and you need to terminate the Firefox processes. To begin, use pidof to locate the PIDs:

pidof firefox

All Firefox processes will be printed with this command:

Output

2551 2514 1963 1856 1771

Send the SEGTERM signal to terminate all Firefox processes once you know their PIDs:

sudo kill -9 2551 2514 1963 1856 1771

To terminate the program in one command, use the command substitution expression $(...):

sudo kill -9 $(pidof firefox)

FAQs on Pidof Command in Linux

How do I use the pidof command to find the PID of a program?

To find the PID of a program using pidof, simply provide the name of the program as an argument to the command. For example, pidof firefox will provide the PID of the Firefox browser if it is currently running.

Can the pidof command find multiple PIDs for the same program?

Yes, the pidof command can return multiple PIDs if there are multiple instances of the same program running simultaneously.

What happens if the program specified in pidof is not running ?

If the program specified in the pidof command is not running, the command will return no output. It will not display any PIDs.

Can I use regular expressions with the pidof command?

No, the pidof command does not support regular expressions. It only searches for exact program names.

What is the difference between pidof and pgrep?

Both pidof and pgrep can be used to find PIDs of running processes. However, pgrep provides more advanced search functionality, allowing for regular expressions and more extensive process matching options.

Can pidof be used with wildcard characters to find PIDs?

No, the pidof command does not support wildcard characters. It searches for exact program names.

Is the output of pidof useful for further processing in scripts?

Yes, the output of the pidof command can be captured and used in scripts for further processing. It can be assigned to variables or passed as arguments to other commands.

Conclusion

The pidof command is used to determine the PIDs of running programs.

pidof is a straightforward command with few options. In most cases, you'll merely use pidof with the name of the program you're looking for.

If you have any queries, please leave a comment below and we’ll be happy to respond to them.