Server Fault is a question and answer site for system and network administrators. Join them; it only takes a minute:

Sign up
Here's how it works:
  1. Anybody can ask a question
  2. Anybody can answer
  3. The best answers are voted up and rise to the top

I'm setting up monit and want to monitor a given python application. Monit does this by looking at the .pid files for processes, but I don't know where this would be.

I also tried creating my own simple executable and running it- here too I can't figure out where the .pid file is created.

And do all processes have a .pid file?

share|improve this question
Not all processes have a .pid file. The application (or its start up script) needs to explicitly create one. – bahamat Aug 15 '12 at 18:13
up vote 9 down vote accepted

You'll usually find the PID files for daemonized processes in /var/run/ on Redhat/CentOS-style systems.

Short of that, you can always look in the process init script. For instance, the SSH daemon is started with the script in /etc/init.d/sshd. Sometimes the PID will be defined there (search for pid, PID, PIDFILE, PID_FILE, etc.).

However, most other daemons on RHEL-style systems source the /etc/init.d/functions script for some common features.

# Set $pid to pids from /var/run* for {program}.  $pid should be declared
# local in the caller.
# Returns LSB exit code for the 'status' action.
__pids_var_run() {
        local base=${1##*/}
        local pid_file=${2:-/var/run/$}

For anything that sources /etc/init.d/functions, the PID will live in /var/run/*.pid.

For custom applications, the PID will be defined in a wrapper script (hopefully). Most developers I know follow the same convention as the daemons above, though.

If you do encounter something without a PID file, remember that Monit can monitor on a process string patern as well.

share|improve this answer
ewwhite- Thanks a lot- but when I try monit procmatch anything on the commandline I get monit: invalid argument -- procmatch. Any ideas? – Yarin Aug 15 '12 at 18:36
What version of Monit are you using? (Type monit -V) Which OS/distribution? – ewwhite Aug 15 '12 at 18:43
Monit 5.1.1 yummed onto CentOS 6 – Yarin Aug 15 '12 at 18:45
Also, what would be my options for multiple non-daemon processes? What do you think about this answer – Yarin Aug 15 '12 at 18:50
@yarin It looks like you have the Monit from the EPEL repository. The version for EL6 from RPMForge is 5.4. – ewwhite Aug 15 '12 at 18:52

Your Answer


By posting your answer, you agree to the privacy policy and terms of service.

Not the answer you're looking for? Browse other questions tagged or ask your own question.