我有一个最初创建static配置文件的应用程序(一次),写入文件后,我需要重新初始化/重新启动应用程序。是否可以从自身重新启动 node.js 应用程序?
static
这是必需的,因为我runlevels在 node.js 中有两个应用程序在运行。初始启动完全完成,synchronus并且在完成此级别后,应用程序在先前启动的环境中处于异步运行级别。
runlevels
synchronus
我知道有诸如nodemon之类的工具,但这并不是我需要的。
我试图杀死process.kill()正在运行的应用程序,但是我听不到kill事件:
process.kill()
// 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();
还是有更好,更清洁的方式来处理此问题?
找到了一个可以node.js从应用本身重新启动的工作案例:
node.js
例:
// 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(); }); }
我在这里看到的唯一缺点是在控制台上松开了输出,但是如果将任何内容记录到日志文件中,这不是问题。