pidof - find the process ID of a running program
pidof [-s] [-c] [-n] [-x]
[-z] [-o omitpid[,omitpid...]] [-o
omitpid[,omitpid...]...] [-d sep] program
[program...]
pidof finds the process id's (PIDs) of the named programs.
It prints those id's on the standard output. This program is on some systems
used in run-level change scripts, especially when the system has a
System-V like rc structure. In that case these scripts are
located in /etc/rc?.d, where ? is the runlevel. If the system has a
start-stop-daemon(8) program that should be used instead.
- -s
- Single shot - this instructs the program to only return one
pid.
- -c
- Only return process PIDs that are running with the same root directory.
This option is ignored for non-root users, as they will be unable to check
the current root directory of processes they do not own.
- -n
- Avoid stat(2) system function call on all binaries which are
located on network based file systems like NFS. Instead of using
this option the variable PIDOF_NETFS may be set and exported.
- -q
- Do not display matched PIDs to standard out. Simply exit with a status of
true or false to indicate whether a matching PID was found.
- -x
- Scripts too - this causes the program to also return process id's of
shells running the named scripts.
- -z
- Try to detect processes which are stuck in zombie (Z) status. Usually
these processes are skipped as trying to deal with them can cause pidof or
related tools to hang. Note: In the past pidof would ignore processes in
the uninterruptable state (D), unless the -z flag was specified.
This is no longer the case. The pidof program will find and report
processes in the D state whether -z is specified or not.
- -d sep
- Tells pidof to use sep as an output separator if more than
one PID is shown. The default separator is a space.
- -o omitpid
- Tells pidof to omit processes with that process id. The special pid
%PPID can be used to name the parent process of the pidof
program, in other words the calling shell or shell script.
- 0
- At least one program was found with the requested name.
- 1
- No program was found with the requested name.
pidof is actually the same program as killall5(8);
the program behaves according to the name under which it is called.
When pidof is invoked with a full pathname to the program
it should find the pid of, it is reasonably safe. Otherwise it is possible
that it returns PIDs of running programs that happen to have the same name
as the program you're after but are actually other programs. Note that the
executable name of running processes is calculated with readlink(2),
so symbolic links to executables will also match.
Zombie processes or processes in disk sleep (states Z and D,
respectively) are ignored, as attempts to access the stats of these will
sometimes fail. The -z flag (see above) tells pidof to try to
detect these sleeping and zombie processes, at the risk of failing or
hanging.