我开发了一个可以通过shell命令控制的守护进程。 只是为了澄清让我们说守护进程将有三个函数(我想要的调用):
$ myDaemon start #do nothing,just daemonize。 exit(0)成功,否则退出(1)
$ myDaemon停止#ask守护进程停止。 exit(0)成功,否则退出(1)
$ myDaemon doSomething #ask守护进程。 exit(0)是成功,否则退出(1)(假设守护进程执行int a = 0;退出(0);只是为了查看代码,对特殊内容不感兴趣)
任何人都可以告诉我一个关于如何制作这个守护进程的例子(好吧,开始真的很简单......)?
谢谢大家!
答案 0 :(得分:0)
如果你真的想让一个守护进程完成所有的工作,那么一种方法是编写一个终端程序,通过一些IPC技术将所有命令从终端传递给守护进程。
您所要做的就是:
修改强>
主要流程的算法
main()
{
> fork the daemon with some initial arguments(if any)
while(1)
{
> take inputs from the shell
> parse the input and pass it to daemon(via preferred mechanism)
> if(exit condition) kill->daemon and break
}
}
守护进程
main() (or function_name() if no execl)
{
> initialize the arguments and IPC mechanism
while(1)
{
> read command(can use simple integer/character commands)
> perform requested action or break if exit command
}
> proper exit(closing file descriptors,etc.)
}