当前位置:  开发笔记 > 编程语言 > 正文

我如何编写Mono守护进程的代码

如何解决《我如何编写Mono守护进程的代码》经验,为你挑选了3个好方法。

我正在尝试为Linux编写一个Mono C#守护进程.

当它完成处理而不是仅仅杀死进程时,我想做它的启动和停止.

有没有人有这方面的例子?

编辑:我想出如何在debian中使用start-stop-daemon --background,所以我想我现在就用它.

编辑:我也在java中实现这个,他们有这个很好的addShutdownHook,可以捕获终止应用程序.我需要花费更多的时间来整理单声道服务的依赖关系,或找到一种方法来捕获应用程序终止.

有SessionEnd事件,但这仅适用于服务而非控制台应用程序

答: 使用mono-service在Linux上包装Windows服务



1> miguel.de.ic..:

要以Unix方式接收通知,即使用信号,您希望对计划接收的每个信号使用Mono.Unix.UnixSignal,然后在信号数组上调用UnixSignal.WaitAny().


您通常会在单独的线程上执行此操作.



2> lupus..:

您应该实现服务并使用单一服务.谷歌为它,你会发现几个例子.


如果这些例子很容易找到,请在这里链接.随着时间的推移,对Google的引用相当不稳定.

3> David Schmit..:

一个简单的方法是侦听(本地,高)端口并从管理客户端接收命令,如bind.

更unix-ish的方法是使用UnixSignal 注册信号处理程序并在接收某个信号时正确关闭.请参阅Mono常见问题解答,"我可以使用Mono信号处理程序吗?" 警告和一个例子.

狼疮找到了mono-service,这是一个使用ServiceProcess接口的托管过程.遗憾的是,这需要设置MONO_DISABLE_SHM,这会禁用Mono中的某些功能,特别是跨进程IPC系统.

推荐阅读
贴进你的心聆听你的世界
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有