我正在尝试为linux编写一个Mono C#守护进程。
我想在它完成处理时启动和停止它,而不是简单地杀死进程。
有谁有这样的例子吗?
编辑:我知道了如何在debian中使用start-stop-daemon --background,所以我想现在就用它。
编辑:我也用java实现了这一点,他们有一个很好的addShutdownHook,可以捕捉终止应用程序的过程。我需要花更多的时间来整理单声道服务的依赖关系,或者找到一种方法来捕捉应用程序的终止。
存在SessionEnd事件,但该事件仅适用于服务,而不适用于控制台应用程序
发布于 2008-10-11 11:18:29
你应该实现一个服务,并使用单一服务。在谷歌上搜索,你会找到几个例子。
发布于 2008-10-19 16:30:08
要以Unix的方式接收通知,即使用信号,您需要对计划接收的每个信号使用Mono.Unix.UnixSignal,然后对信号数组调用UnixSignal.WaitAny ()。
您通常会在单独的线程上执行此操作。
发布于 2008-10-09 14:28:15
一种简单的方法是侦听(本地的、高的)端口并从管理客户端接收命令,就像bind所做的那样。
一种更具unix风格的方式是使用UnixSignal进行register a signal handler,并在收到特定信号时正确关机。有关注意事项和示例,请参阅Mono FAQ, "Can I use signal handlers with Mono?"。
lupus发现了mono-service,它是一个使用ServiceProcess
接口的宿主进程。遗憾的是,这需要设置MONO_DISABLE_SHM
,这会禁用Mono中的一些功能,特别是跨进程的进程间通信系统。
https://stackoverflow.com/questions/186493
复制相似问题