Как я могу программно завершить работу программы узла и перезапустить ее?
Мне нужно закрыть программу узла и перезапустить ее. Я хочу сделать это в самой программе без необходимости использовать что-то вроде вечной необходимости, если это необходимо. Я знаю, что могу использовать process.exit(), чтобы закрыть программу, но все, что я могу придумать, откроет ее обратно, которую я могу запустить изнутри узла, будет уничтожено process.exit() до ее завершения. Есть ли способ, которым я не вижу, чтобы отделить вызов exec от процесса перед выходом? Есть другие идеи? Должен ли я смириться с этим и пойти навсегда?
1 ответ
Решение
Быстро и грязно, не очень хорошо проверено:
var child_process = require('child_process');
process.on('SIGINT', function() {
console.log('restarting...');
child_process.fork(__filename); // TODO: pass args...
process.exit(0);
});
console.log('Running as %d', process.pid);
setTimeout(function(){}, 1000000); // just some code to keep the process running