Я использую C # и Mono 2.10.2 в Debian 6.
Таким образом, сценарий состоит в том, что я создал процесс с помощью 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, запускается и выполняет несколько функций, включая запуск Java-приложения.Проблема, которую я получаю, заключается в том, что, когда приложение c # завершается, приложение bash script / java также завершает свою работу.
Я рассмотрел несколько других похожих вопросов, опубликованных здесь, в Переполнении стека, и ни один из них не пришел к очевидному выводу, включая этоone:
Как создать Процесс, который переживает своего родителя
По мнению некоторых пользователей и предположительно документов, процессы, созданные Process.Start (), не должны быть прекращеныкогда приложение завершается, но, очевидно, в моем случае это не так.Так может ли это быть проблемой, связанной с Mono, и если это действительно так, то есть ли альтернатива тому, как я это делаю сейчас, когда у меня нет идей?