我希望我的进程能够在不依赖shell脚本的情况下“重启”自身。以下适用于Windows:
public static void Kill(bool restart)
{
/// flush write cache, etc.
if (restart) {
Process.Start(path, args);
}
m_Process.Kill();
}
会发生一个新的终端窗口,旧的终端窗口退出(不太理想,但可以接受)。
我的问题是在Linux上导致/home/me/path/to/binary/[unknown]
上的“无效句柄”异常,并且没有创建新窗口。因为没有创建新窗口,所以我在同一个应用程序中的其他地方的代码在尝试执行格式化输出时会发生扼流圈,因为Console.Window的维度未正确初始化。
确保新进程正确连接到虚拟终端的正确方法是什么?