我将使用C#和Mono 2.10.2在Debian 6上进行操作。
场景如下:我通过Process.Start()方法创建了一个进程,代码如下:
在这种情况下称为test.sh的shell脚本被运行,其中包括启动一个java应用程序。我遇到的问题是当c#应用程序终止时,bash脚本/ java应用程序也会终止。
我查看了Stack Overflow上发布的几个类似的问题,但没有明显的结论,包括这个:如何创建一个超越其父进程的进程。
根据一些用户和文档,由Process.Start()创建的进程不应在应用程序终止时终止,但在我的情况下显然不是这样。那么这可能是一个Mono相关的问题,如果确实是这种情况,那么是否有任何替代方法来解决目前的问题,因为我已经没有更多的想法了。
场景如下:我通过Process.Start()方法创建了一个进程,代码如下:
Process p = new Process();
p.StartInfo.UseShellExecute = false;
p.StartInfo.RedirectStandardOutput = true;
p.StartInfo.RedirectStandardInput = true;
p.StartInfo.RedirectStandardError = true;
p.StartInfo.WorkingDirectory = "/home/lucy/";
p.StartInfo.FileName = "/bin/sh";
p.StartInfo.Arguments = "/home/lucy/test.sh";
p.EnableRaisingEvents = true;
p.ErrorDataReceived += new DataReceivedEventHandler(ShellProc_ErrorDataReceived);
p.Start();
在这种情况下称为test.sh的shell脚本被运行,其中包括启动一个java应用程序。我遇到的问题是当c#应用程序终止时,bash脚本/ java应用程序也会终止。
我查看了Stack Overflow上发布的几个类似的问题,但没有明显的结论,包括这个:如何创建一个超越其父进程的进程。
根据一些用户和文档,由Process.Start()创建的进程不应在应用程序终止时终止,但在我的情况下显然不是这样。那么这可能是一个Mono相关的问题,如果确实是这种情况,那么是否有任何替代方法来解决目前的问题,因为我已经没有更多的想法了。