Mac OS X 可以运行 xinetd 而不是 launchd 吗?如果可以,该怎么做?
答案1
而不是 - 否。同时 - 是。您可以为 OS X 编译 xinetd(自 2.3.8 版本起,我相信这很顺利)。只要 launchd 没有持有 xinetd 需要的套接字,这应该可以正常工作。xinetd 可以手动启动,也可以从 launchd 启动(就像任何其他 LaunchDaemon 一样)。
仅供参考,launchd 确实模拟了旧的 inetd(使用各种 InetD 兼容性密钥),并且实际上具有许多 xinetd 的功能,例如资源限制、节流等。 Launchd 远远超出了 init 或 inetd - 它还取代了 add、crond,并充当 OS X(Mach)的引导服务器。所以“代替”不是一个选择。
答案2
Launchd 是一个取代 initd 的超级守护进程。它启动大多数其他进程,以便它们具有父 PID (PPID),包括像 xinetd 这样的超级守护进程。
答案3
Mac OS X 的最新版本现在默认包含 xinetd,例如,请参阅: