Skip to content

@FGRibreau /pid.js
Created

Embed URL

HTTPS clone URL

Subversion checkout URL

You can clone with
or
.
Download ZIP
Simple snippet for cross-platform .pid management in NodeJS. I use it for managing NodeJS apps with supervisord and monit
//
// Usage: require('./pid')("myapp");
//
var fs = require('fs');
module.exports = function(appname){
process.title = appname;
var PID_FILE = "/usr/local/var/run/"+process.title+".pid";
fs.writeFileSync(PID_FILE, process.pid+"\n");
process.on("uncaughtException", function(err) {
console.error("[uncaughtException]", err);
return process.exit(1);
});
process.on("SIGTERM", function() {
console.log("SIGTERM (killed by supervisord or another process management tool)");
return process.exit(0);
});
process.on("SIGINT", function() {
console.log("SIGINT");
return process.exit(0);
});
process.on("exit", function() {
return fs.unlink(PID_FILE);
});
};
#
# The following snippet must be inserted at the top of your main js file
#
process.title = "MyApp"
PID_FILE = "/usr/local/var/run/#{process.title}.pid"
fs = require("fs")
fs.writeFileSync PID_FILE, "#{process.pid}\n"
process.on "uncaughtException", (err) ->
console.error "[uncaughtException]", err
process.exit 1
process.on "SIGTERM", ->
console.log "SIGTERM (killed by supervisord or another process management tool)"
process.exit 0
process.on "SIGINT", ->
console.log "SIGINT"
process.exit 0
process.on "exit", ->
console.log('Exiting...')
fs.unlink PID_FILE
#
# Your code start here
#
setInterval (->), 1000
//
// The following snippet must be inserted at the top of your main js file
//
process.title = "MyApp";
var PID_FILE = "/usr/local/var/run/"+process.title+".pid"
, fs = require('fs');
fs.writeFileSync(PID_FILE, process.pid+"\n");
process.on("uncaughtException", function(err) {
console.error("[uncaughtException]", err);
return process.exit(1);
});
process.on("SIGTERM", function() {
console.log("SIGTERM (killed by supervisord or another process management tool)");
return process.exit(0);
});
process.on("SIGINT", function() {
console.log("SIGINT");
return process.exit(0);
});
process.on("exit", function() {
return fs.unlink(PID_FILE);
});
//
// Your code start here
//
setInterval(function(){}, 1000);
@pste

You should use the unlinkSync on exit, otherwise you'll not granted to have the pid file deleted

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Something went wrong with that request. Please try again.