simple-pid
Stupid simple PID management.
Why another PID module?
I know, there’s already quite a few other PID modules out there but for me they
all seemed to fall into the poorly documented or the overly complex categories.
I just wanted a way to see if a process was already running and if not, run
the damn code. I also wanted to do this in a very simple fashion, by way of a
callback. And thus, I give you simple-pid
.
Installation
Usual shit:
npm install simple-pid
Usage
var pid = require('simple-pid');
pid.lock('process-name', function() {
});
But what’s it do?
Great question! All it does is checks to see if a PID file was already created,
based on the passed process name. If the PID inside of the PID file is still
active, the callback is not executed. If it isn’t running (or the PID file
simply doesn't exist) the PID file will be created (with the current PID) and
the code in the callback will be executed.
Any gotchas?
You know it! Because this module writes to the /var/run
directory it requires
write access to that directory. This is best accomplished by running your script
as root or by way of sudo
.
Wait, no cleanup?
Nah, I felt that cleaning up the PID file (by removing it post-execution) was
just an unnecessary layer that could be omitted. Could you run into some sort of
PID collision? Never say never, but thus far we haven’t seen any fallout from
this and I really did want to keep the code as stupid simple as possible.