Monday, May 20, 2024
 Popular · Latest · Hot · Upcoming
71
rated 0 times [  77] [ 6]  / answers: 1 / hits: 19864  / 10 Years ago, thu, july 10, 2014, 12:00:00

I've an app which initially creates static config files (once) and after files were written I need to reinitialize/restart the application.
Is there something to restart a node.js app from itself?



This is required cause I've an application running in two runlevels in node.js.
The initial one starts completly synchronus and after this level has been completed app is in async runlevel in a previously started environment.



I know there are tools like nodemon but that's not what I need in my case.



I tried to kill the app via process.kill() which is working but I can't listen to the kill event:



 // Add the listener
process.on('exit', function(code) {
console.log('About to exit with code:', code);
// Start app again but how?
});

// Kill application
process.kill();


Or is there a better, cleaner way to handle this?


More From » node.js

 Answers
16

Found a working case to get node.js restarted from app itself:



Example:



// Optional part (if there's an running webserver which blocks a port required for next startup
try {
APP.webserver.close(); // Express.js instance
APP.logger(Webserver was halted, 'success');
} catch (e) {
APP.logger(Cant't stop webserver:, 'error'); // No server started
APP.logger(e, 'error');
}


// First I create an exec command which is executed before current process is killed
var cmd = node + APP.config.settings.ROOT_DIR + 'app.js';

// Then I look if there's already something ele killing the process
if (APP.killed === undefined) {
APP.killed = true;

// Then I excute the command and kill the app if starting was successful
var exec = require('child_process').exec;
exec(cmd, function () {
APP.logger('APPLICATION RESTARTED', 'success');
process.kill();
});
}


The only con I can see here is to loose outputs on console but if anything is logged into logfiles it's not a problem.


[#70256] Monday, July 7, 2014, 10 Years  [reply] [flag answer]
Only authorized users can answer the question. Please sign in first, or register a free account.
charity

Total Points: 503
Total Questions: 98
Total Answers: 125

Location: Mali
Member since Fri, Dec 3, 2021
3 Years ago
;