C#(单声道):程序失败时重新启动

我在单声道工作是相当新的,并想知道如何强制我的控制台应用程序重新启动在Linux环境下的exception。 我怎么去做这个?

如果进程死了,你可以使用像Monit这样的东西来保持它运行。 简要描述;简介:

如果Monit没有运行,可以启动一个进程,如果它没有响应就重新启动一个进程,如果进程使用的资源太多,停止进程。

通常,将应用程序编码为“能够自行重启”永远不够可靠。 有人用kill -9来终止应用程序,你的应用程序将无法回应。 因此,需要某种类型的守护进程或看门狗。

我不知道这是否会在Linux下工作,因为我从来没有使用单声道,但我会尝试是钩入Process.Exited事件。 (我假设你正在用Process类开始你的应用程序)

Process.Exited http://msdn.microsoft.com/en-us/library/system.diagnostics.process.exited.aspx

所以你可以做一些像…

开始进程 – 进入退出的事件

等待直到退出事件被调用

开始进程 – 进入退出的事件

祝你好运!

我会推荐这个移动到超级用户。

在你想要使用的单声道中没有任何内容。 您可以在Mono中创建一个Watchdog应用程序,它将检查并确保您的进程始终在运行,但是有足够的Linux脚本和应用程序来执行此操作。 Monit就是一个例子。

或者你可以进入/etc/inittab并找到名为respawn的行,并在那里添加你的守护进程。 init将确保进程始终运行。

这里是一个Java的示例守护进程启动脚本,您可以修改为单声道。 http://shrubbery.homeip.net/c/display/W/Java+Daemon+Startup+Script