Linux 如何进行MONO Process()调用以启动一个不';当它死去时,它不会死去吗?
我在Linux系统上使用Mono启动一个进程。有时,父进程会过早地死亡,并带走子进程,但我需要让子进程继续运行。Linux 如何进行MONO Process()调用以启动一个不';当它死去时,它不会死去吗?,linux,process-management,mono,Linux,Process Management,Mono,我在Linux系统上使用Mono启动一个进程。有时,父进程会过早地死亡,并带走子进程,但我需要让子进程继续运行。 在测试中,我测试的System.Diagnostics.Process.Start()的每一个变体都会在我终止父进程时导致其子进程死亡。 是否有一些设置我错过了,或其他方式来实现这一点? 作为测试,这: 这个: System.Diagnostics.Process.Start(new ProcessStartInfo("journalctl", "-f") {UseShellEx
在测试中,我测试的System.Diagnostics.Process.Start()的每一个变体都会在我终止父进程时导致其子进程死亡。 是否有一些设置我错过了,或其他方式来实现这一点? 作为测试,这:
这个:
System.Diagnostics.Process.Start(new ProcessStartInfo("journalctl", "-f") {UseShellExecute = false});
System.Diagnostics.Process.Start("journalctl", "-f");
还有这个:System.Diagnostics.Process.Start(new ProcessStartInfo("journalctl", "-f") {UseShellExecute = false});
System.Diagnostics.Process.Start("journalctl", "-f");
将启动'journalctl'('ps-aef'指示正确的父子ID),并且当我终止父进程时,'journalctl'也将终止。
我应该为子进程启动一个使用nohup和disown的脚本吗 完全解除子进程与父进程的关联需要子进程进行多次系统调用;如果MONO无法访问适当的系统调用,那么通过shell包装器可以更容易地完成这些操作(
fork
首先创建子进程,然后setId
退出父进程组,处理标准输入和标准输出文件句柄,可能是chdir
到//code>,以及我忘记的任何其他内容)。您的MONO调用看起来更类似于系统(3)
系统调用,这也需要为setsid
等使用包装程序