从Mac OS X launchd守护进程中执行

时间:2011-03-10 13:24:40

标签: c++ macos daemon launchd execve

是否可以使用launchd守护程序中的execve?我想要进入守护进程的进程使用fork()后跟execve启动几个子进程,但documentation for creating launchd daemons表示“调用fork后跟exec”是不行的。这是否意味着我无法从守护进程创建子进程?

1 个答案:

答案 0 :(得分:4)

AFAIK,你可以分叉和执行就好了。关键点在于:“你不能分叉你的进程并让父进程退出。”事情是,启动“监视”你的服务。如果您的服务退出,它将重新启动。这意味着它也可能没有守护进程(使用daemonize我的意思是经典产生一个新进程,创建一个新进程组,退出父进程,子进程依赖于方案)。

我猜你应该确保在退出主进程之前杀死/退出你的子进程,只是为了不乱丢环境。