编写一个unix守护进程

时间:2012-11-06 03:28:43

标签: unix daemon

我正在尝试在Unix中编写守护进程。我理解如何使守护程序启动并运行的部分。现在,如果将命令定位到守护进程,我希望守护进程在shell中键入命令时进行响应。

例如:

让我们假设守护进程名称是“mydaemon”

在终端1中输入mydaemon xxx。 在终端2中输入mydaemon yyy。

“mydaemon”应该能够接收参数“xxx”和“yyy”。

1 个答案:

答案 0 :(得分:1)

如果我正确地解释了您的问题,那么您必须将其作为应用程序级构造。也就是说,这是您自己编写代码的程序所特有的。

我将采用的方法是编写“mydaemon”,并将其作为包装器:它检查进程表或pid文件以查看“mydaemon”是否已在运行。如果没有,那么fork / exec你的新守护进程。如果是,则将参数发送给它。

对于“向它发送参数”,我会使用命名管道,如下所述:What are named pipes?基本上,您可以将命名管道视为“stdin”,除非它们显示为文件系统的其余部分,因此您可以在运行的“mydaemon”中打开它们并检查它们的输入。

最后,应该注意的是,所有这些check-if-running-send-to-pipe的东西都可以在您的守护程序中使用* nix OS的API完成,或者可以在脚本使用例如'ps','echo'等......