所以我想运行一个脚本来杀死我的nodejs进程并在另一个屏幕窗口中运行另一个。当我从控制台运行命令时它可以工作,但是当从nodejs脚本运行时,kill
部分被执行但服务器永远不会运行。
filelog('Attempting restartNodejs with PID: ' + pid
+ ' serverjsLocation: ' + serverjsLocation);
filelog('kill ' + pid + ';screen -d -m -L nodejs ' + serverjsLocation);
//return;
exec('kill ' + pid + ';screen -d -m -L nodejs ' + serverjsLocation);
,日志是
Attempting restartNodejs with PID: 29685 serverjsLocation: /home/git/Gitorade/server.js
kill 29685;screen -d -m -L nodejs /home/git/Gitorade/server.js
但服务器未运行。 ps -e | grep nodejs
在第一次运行时没有返回任何内容,而是输出进程。
我的猜测是它以fork运行,所以当我杀死nodejs时,screen命令永远不会被执行,因为我无法获得任何响应或退出操作。该命令后screen.0日志为空。
如何独立运行此exec,以便在kill
之后不会被杀死?