File: //opt/bitninja-dispatcher/node_modules/daemonize2/examples/advanced/ctrl.js
var daemon = require("daemonize2").setup({
main: "app.js",
name: "sampleapp",
pidfile: "/var/run/sampleapp.pid",
user: "www",
group: "www",
silent: true
});
if (process.getuid() != 0) {
console.log("Expected to run as root");
process.exit(1);
}
daemon
.on("starting", function() {
console.log("Starting daemon...");
})
.on("started", function(pid) {
console.log("Daemon started. PID: " + pid);
})
.on("stopping", function() {
console.log("Stopping daemon...");
})
.on("stopped", function(pid) {
console.log("Daemon stopped.");
})
.on("running", function(pid) {
console.log("Daemon already running. PID: " + pid);
})
.on("notrunning", function() {
console.log("Daemon is not running");
})
.on("error", function(err) {
console.log("Daemon failed to start: " + err.message);
});
switch (process.argv[2]) {
case "start":
daemon.start();
break;
case "stop":
daemon.stop();
break;
case "kill":
daemon.kill();
break;
case "restart":
daemon.stop(function(err) {
daemon.start();
});
break;
case "reload":
console.log("Reload.");
daemon.sendSignal("SIGUSR1");
break;
case "status":
var pid = daemon.status();
if (pid)
console.log("Daemon running. PID: " + pid);
else
console.log("Daemon is not running.");
break;
default:
console.log("Usage: [start|stop|kill|restart|reload|status]");
}