开发 Mac OS 守护程序和 IPC

Developing a Mac OS Daemon and IPC

本文关键字:IPC 守护程序 OS Mac 开发      更新时间:2023-10-16

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

有几种方法:

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

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