Node.JS child processes being killed when parent dies

夙愿已清 提交于 2019-11-30 23:01:08

问题


I am using child_process.spawn() to start a script from my Node.JS application running on Ubuntu. As far as I know, standard forked or spawned *nix processes don't generally die when the parent dies, but when spawning processes from Node.JS, they seem to get killed when my application crashes, or is aborted with ctrl-c etc.

Why is this and is there a way around this? I can't seem to find any obvious option in the child_process API.

My application starts some quite long-running tasks that should run in the background, and if my node server crashes or is restarted for some other reason I don't want to interrupt the tasks, instead I want the node server to come back up and gracefully resume monitoring the progress of those running tasks.


回答1:


you need to set the detached option

If the detached option is set, the child process will be made the leader of a new process group. This makes it possible for the child to continue running after the parent exits.

var child = spawn('prg', [], {
   detached: true,
   stdio: [ 'ignore', out, err ]
 });


来源:https://stackoverflow.com/questions/30708801/node-js-child-processes-being-killed-when-parent-dies

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!