问题描述
我正在 .NET Core 中为 Linux 制作一个简单的更新程序
父 应用程序(MVC 应用程序)下载更新并启动子“更新程序”应用程序,然后退出。子应用程序等待父应用程序退出,然后再提取父应用程序的更新。
父级正在启动子级,如下所示:
var process = new Process
{
StartInfo = new processstartinfo
{
FileName = $"{Path.Combine(Program.RootFolderPath,"Updater")}",Arguments = $"{Process.GetCurrentProcess().Id} \"{updateFile}\" \"{Program.RootFolderPath}\"",UseShellExecute = false,CreateNowindow = true,RedirectStandardError = true,RedirectStandardOutput = true
}
};
process.OutputDataReceived += (sender,data) => {
Program.GeneralLog.Info(data);
};
process.ErrorDataReceived += (sender,data) => {
Program.GeneralLog.Error(data);
};
process.Start();
似乎正在发生的是 子 应用程序在 父 退出时退出。这是故意的吗?
父应用程序在 RaspBerry Pi 上作为服务(使用 systemd)在 pi
用户下运行——以防万一。服务设置为退出 30 秒后自动重新启动。
注意我已经在 Windows(我的开发环境)中使用 Notepad.exe 作为子进程对此进行了测试,并且当父进程退出时子进程不会退出,所以我的问题特别是关于我在 Linux 中可能做错了什么。
注意:可能与this post有关
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)