LinuxSir.cn,穿越时空的Linuxsir!

 找回密码
 注册
搜索
热搜: shell linux mysql
查看: 1394|回复: 3

daemon程序有哪些实现方式?

[复制链接]
发表于 2009-5-23 18:48:16 | 显示全部楼层 |阅读模式
最近要写一个命令行程序,我打算设计为daemon模式,这样以后方便写图形外壳。程序需要提供的指令不多,大约就stop,start,reloadConfig,getState等,可能还需要主动广播information。
于是我思索了一番,觉得关键在于通信方式。我所想到的通信方式如下:
1、signal。重定义各种信号的含义,这样就能容易使用kill等程序发送信号给daemon,进而达到发送指令的目的。这种方式下不能获取来自daemon的信息,是为最大缺陷。
2、socket。利用socket能一举解决发送指令,接受返回结果的问题,而且可能还可以实现远程监控(提供这样的功能也不赖),只是不知道编程方面会不会变得复杂?
3、DBUS。DBUS我只是听说过,了解过,可并没有编程过。我猜想,这种模式下daemon接受指令/发送返回结果比起socket方式更容易些,毕竟是较为现代的通信方式。

不知道哪一种模式适合我的这个小程序?如果还有更好的方式,请指教。

PS:各位若举些编程方面的参考就更妙了。。。
发表于 2009-5-24 16:11:57 | 显示全部楼层
既然要用C/S模式, 那么socket是王道.
回复 支持 反对

使用道具 举报

发表于 2009-6-13 14:31:28 | 显示全部楼层

socket

Post by kevinlei;1990570
既然要用C/S模式, 那么socket是王道.

正解 !

简单、易用、可移植性佳
回复 支持 反对

使用道具 举报

发表于 2009-7-3 19:45:59 | 显示全部楼层
于是我思索了一番,觉得关键在于通信方式。我所想到的通信方式如下
...


进程间通信的方式很多,本地socket,message Q,具体的看看unix 环境高级编程就可以了。

命令行模式的,接受指令不多的话,单线程的搞搞就是了。

           waiting ...........(可以用block方式的)
           有消息来了就,按照相应的指令来处理就可以了。
           然后继续等。
           
socket完全胜任了.
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

快速回复 返回顶部 返回列表