Stupid simple PID management.
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
.
Usual shit:
npm install simple-pid
var pid = require('simple-pid');
pid.lock('process-name', function() {
// All your awesome logic
});
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.
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
.
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.