Hacker News new | ask | show | jobs
by RVuRnvbM2e 3540 days ago
> Launchd is solid and full-featured

No, it's a train wreck of bad design, lack of backwards compatibility and sharp edges:

* Tracks PIDs only, so make sure that your process doesn't double fork (as many unix daemons do by default) or it'll lose track of them.

* No real documentation from Apple (man page is useless). The best resource is http://launchd.info.

* No feedback to commands: launchctl doesn't give any useful output about whether a command worked or not.

* Even something as simple as disabling a daemon may require manually editing one of the many `overrides.plist` XML files somewhere on the system.. though check your OS version because this changed between 10.9 and 10.10 without notice.

* ...I could go on.

Due to the chronic lack of documentation, many operations are totally trial and error. In fact, it is so bad that there's a market for a GUI tool (LaunchControl) which, to its credit, does manage to make launchd less painful than a trip to the dentist.

The only feature it adds that sysv didn't have is socket activation, and it doesn't do anything that xinetd didn't.