Как я могу программно завершить работу программы узла и перезапустить ее?

Мне нужно закрыть программу узла и перезапустить ее. Я хочу сделать это в самой программе без необходимости использовать что-то вроде вечной необходимости, если это необходимо. Я знаю, что могу использовать 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
Другие вопросы по тегам