在 Linux/C++ 库中,我通过 system() 调用启动一个进程,
system("nohup processName > /dev/null&");
Run Code Online (Sandbox Code Playgroud)
对于一个自行退出的简单测试应用程序来说,这似乎工作得很好,但如果我从获得终止信号的 Nodejs/V8 扩展内部使用它,子进程就会被终止。我确实发现跑步,
system("sudo nohup processName > /dev/null&");
Run Code Online (Sandbox Code Playgroud)
将 sudoers 文件设置为不需要密码后,即使父进程(节点)退出,也可以使其运行。有没有办法完全分离子进程,以便发送到父进程的信号和父进程退出不再对子进程产生影响?最好是在 system() 调用中,而不是需要获取进程 ID 并用它做某事的东西。