2017-06-05 69 views
0

之间我在Linux操作系统Ubuntu合作,共创守护进程。我已经提到了下面的教程,了解基本实现的守护进程代码中使用叉子和SETID:创建用C Linux的多个守护进程和交流他们

http://www.netzmafia.de/skripten/unix/linux-daemon-howto.html

我有一个应用程序,我要创建多个守护进程以及它们之间的通信。

例如: 我有3个源文件,我想使他们的3个不同的守护进程。我在这些源文件中定义了函数,我想从main()或其他源文件调用函数。

  1. 我究竟是如何创建多个守护进程即每个单独的源文件作为一个独立的守护进程? (我可能是错在这里,但我正打算创建线程对这些文件的功能,在此功能将有自己的PID,然后我也叉子和SETID,其余的过程在这里创建一个守护进程的功能,这可能创建单独的多个守护进程?)

  2. 我应该如何管理这些守护进程之间的通信? 例如:如果我想从源文件调用某个函数,并且该源文件是一个守护进程,那么我应该如何从该守护进程调用一个函数?

我在互联网上搜索有关多个守护程序进程及其相互通信的内容,但如果有人能够帮助我,它将会非常棒。

谢谢。

+0

查找“叉子和执行”,并按照其中一个食谱。 – stark

+0

写三个不同的程序,每个程序都有一个主程序。当你执行这些成为三个过程。您可以使用消息队列在这些进程之间传输数据。 – kjohri

+0

上面提出的两种解决方案都能正常工作。 我创建了一个独立的程序,每个程序都有一个main,并将它们中的每一个都作为单独的守护进程。随着信号的使用,我可以中断过程并使用ZeroMQ进行数据传输。 使用fork和execvp的方法也可以创建多个守护进程。 感谢您的建议..它的工作 – Darpan

回答

0

如果目标Linux,我会建议你让恶魔功能是由init系统(systemd例如)处理。

要在程序之间的通信,可以使用命名管道https://linux.die.net/man/4/fifo

+0

你好, 我会考虑管道进行通信。但我的疑问是如何创建我的源文件/函数作为守护进程?如果我在主文件或主函数中有一些代码,那么我可以创建一个守护进程,但我有多个源文件(其中有许多函数声明),如何使每个源文件或某些函数为单个守护进程?感谢您的帮助。 – Darpan