开发Mac OS守护进程和IPC

时间:2014-12-10 14:23:58

标签: c++ macos service ipc daemon

我开发了一个虚拟启动守护进程,每隔5分钟就会向控制台(syslog)写一些内容。现在,我想编写一个可以与此服务通信的应用程序。通过通信我的意思是用户应该能够输入记录频率(时间)。例如,如果服务正在记录' Hello world'每5分钟,用户应该能够将其更改为其他内容(比如说2分钟),并且应该反映出更改。有关如何继续开发应用程序并促进守护进程与应用程序之间的进程间通信的任何想法?感谢。

1 个答案:

答案 0 :(得分:0)

有几种方法:

  1. 为您的应用程序提供一个config文件,其中包含您需要的日志记录频率和任何其他参数。守护进程然后在启动时解析该文件以获取其参数。守护进程还会创建一个SIGHUP处理程序,当它收到SIGHUP时,它会重新读取配置文件中的值。用户与之交互的部分只是从用户那里获取新参数,将它们编辑到config文件中,并向守护进程的进程ID发送kill -HUP

  2. 守护进程创建第二个线程,创建套接字并侦听新参数,当任何到达时,线程更新与其主线程共享的变量,然后继续使用新值。然后,与用户交互的部分会询问用户新参数并将其发送到约定的端口 - 您可以使用ncnetcat开始,然后再使用C ++对其进行编码。