我在Mono工作时相当新,并且想知道如何在Linux环境下强制我的控制台应用程序重启。我该怎么做呢?
答案 0 :(得分:4)
如果进程终止,您可以使用类似Monit的内容来保持其运行。简要说明:
Monit可以在没有运行的情况下启动进程,如果进程没有响应则重新启动进程,如果进程占用过多资源则停止进程。
通常,将应用程序编码为“能够自行重启”永远不够可靠。有人要使用kill -9
终止应用程序,您的应用程序将无法响应该应用程序。因此,需要某种类型的守护进程或监视器。
答案 1 :(得分:0)
我不确定这是否可以在Linux下运行,因为我从未使用过Mono,但我想尝试的是挂钩Process.Exited事件。 (我假设您正在使用Process类启动应用程序)
Process.Exited http://msdn.microsoft.com/en-us/library/system.diagnostics.process.exited.aspx
所以你可以做点像......
- 启动过程 - 进入退出的活动
-wait直到退出事件被称为
- 启动过程 - 进入退出的活动
祝你好运!
答案 2 :(得分:0)
我建议将此移至超级用户。
你想要使用Mono中没有任何内在的东西。您可以在Mono中创建一个Watchdog应用程序,它将检查并确保您的进程始终在运行,但是有很多Linux脚本和应用程序已经执行此操作。 Monit就是一个例子。
或者你可以进入/etc/inittab
并找到名为respawn的行并在那里添加你的守护进程。 init
将确保流程始终在运行。
以下是Java的示例守护程序启动脚本,您可以对其进行修改。 http://shrubbery.homeip.net/c/display/W/Java+Daemon+Startup+Script