added daemon capability to ./nodebb start, npm start/stop scripts

v1.18.x
Julian Lam 11 years ago
parent 38e4a6c8b0
commit 5b301772bb

@ -1,5 +1,11 @@
var fork = require('child_process').fork,
"use strict";
var nconf = require('nconf'),
fs = require('fs'),
pidFilePath = __dirname + '/pidfile',
start = function() {
var fork = require('child_process').fork,
nbb_start = function() {
nbb = fork('./app', process.argv.slice(2), {
env: {
'NODE_ENV': process.env.NODE_ENV
@ -9,18 +15,51 @@ var fork = require('child_process').fork,
nbb.on('message', function(cmd) {
if (cmd === 'nodebb:restart') {
nbb.on('exit', function() {
start();
nbb_start();
});
nbb.kill();
}
});
},
stop = function() {
nbb_stop = function() {
nbb.kill();
if (fs.existsSync(pidFilePath)) {
var pid = parseInt(fs.readFileSync(pidFilePath, { encoding: 'utf-8' }), 10);
if (process.pid === pid) {
fs.unlinkSync(pidFilePath);
}
}
};
process.on('SIGINT', nbb_stop);
process.on('SIGTERM', nbb_stop);
nbb_start();
},
nbb;
process.on('SIGINT', stop);
process.on('SIGTERM', stop);
nconf.argv();
if (nconf.get('d')) {
// Check for a still-active NodeBB process
if (fs.existsSync(pidFilePath)) {
console.log('\n Error: Another NodeBB is already running!');
process.exit();
}
// Initialise logging streams
var outputStream = fs.createWriteStream(__dirname + '/logs/output.log');
outputStream.on('open', function(fd) {
// Daemonize
require('daemon')({
stdout: fd
});
// Write its pid to a pidfile
fs.writeFile(__dirname + '/pidfile', process.pid);
start();
});
} else {
start();
}

1
logs/.gitignore vendored

@ -0,0 +1 @@
*.log

@ -6,7 +6,19 @@
case "$1" in
start)
node loader "$@"
echo "Starting NodeBB";
echo " \"./nodebb stop\" to stop the NodeBB server";
echo " \"./nodebb log\" to view server output";
node loader -d "$@"
;;
stop)
echo "Stopping NodeBB. Goodbye!";
kill `cat pidfile`;
;;
log)
tail -F ./logs/output.log;
;;
upgrade)

@ -10,6 +10,8 @@
},
"main": "app.js",
"scripts": {
"start": "./nodebb start",
"stop": "./nodebb stop",
"test": "mocha ./tests"
},
"dependencies": {
@ -43,7 +45,8 @@
"nodebb-theme-vanilla": "~0.0.14",
"nodebb-theme-cerulean": "~0.0.13",
"nodebb-theme-lavender": "~0.0.22",
"less": "^1.6.3"
"less": "^1.6.3",
"daemon": "~1.1.0"
},
"optionalDependencies": {
"redis": "0.8.3",

@ -52,7 +52,7 @@ var shutdown = function(code) {
db.close();
winston.info('[app] Database connection closed.');
winston.info('[app] Goodbye!');
winston.info('[app] Shutdown complete.');
process.exit();
},
restart = function() {

Loading…
Cancel
Save