Skip to content
This repository

HTTPS clone URL

Subversion checkout URL

You can clone with HTTPS or Subversion.

Download ZIP

A simple, but complete library for managing pidfiles.

branch: master

Fetching latest commit…

Octocat-spinner-32-eaf2f5

Cannot retrieve the latest commit at this time

Octocat-spinner-32 lib
Octocat-spinner-32 test
Octocat-spinner-32 .document
Octocat-spinner-32 .gitignore
Octocat-spinner-32 LICENSE
Octocat-spinner-32 README.rdoc
Octocat-spinner-32 Rakefile
Octocat-spinner-32 VERSION
Octocat-spinner-32 simple_pid.gemspec
README.rdoc

simple_pid

This is a simple library for managing pid files. It was extracted from Kenneth Kalmer's excellent daemon-kit project (github.com/kennethkalmer/daemon-kit). The daemon-kit framework is amazing for bootstrapping your daemons, but if you need something more lightweight (e.g., a single file daemon), then you're out of luck (for now). In the mean time, there weren't any obvious, simple pid file management libraries that you could trust. This one works well and has facilities to ensure the process the pid file is pointing to is still running, so you can handle stale pid files easily.

Usage

Some samples of the most common uses:

require 'rubygems'
require 'simple_pid'

pid = SimplePid.new("/path/to/your.pid")

if pid.exists?
  unless pid.running?
    pid.cleanup
    pid.write!
  end
else
  pid.write!
end

Most of the above is fairly self-explanatory. You can accomplish all of the above by calling:

SimplePid.drop("/path/to/your.pid")

If the path specified for the pid is unwritable for any reason, it falls back to using /tmp to store the

You can cleanup quickly with:

SimplePid.cleanup("/path/to/your.pid")

The above cleanup class method returns true if the process wasn't running and the cleanup was actually run. It returns false if the process was still running and no cleanup occurred. If you need to force cleanup regardless of whether the process is running or not, you can do so with:

SimplePid.cleanup!("/path/to/your.pid")

You can check to see if the process is running and exit with an error message if it is like this:

pid.ensure_stopped!

The current contents of the pid file can always be accessed like this:

pid.pid

Copyright

Copyright © 2010 Joel Watson. Portions copyright Kenneth Kalmer. See LICENSE for details.

Something went wrong with that request. Please try again.