Differences
This shows you the differences between two versions of the page.
| Both sides previous revision Previous revision Next revision | Previous revision | ||
| launchd [2011/05/24 19:02] – Remove link to outdated tarball: the p4 stuff is only fr reference and the GitHub stuff is more up to date. PedroGiffuni | launchd [2021/04/02 08:18] (current) – Fix 2 links. Remove 5 broken hyperlinks. Add 1 note. Link to 1 new page. Replace 1 link with internal page. SashaVigole | ||
|---|---|---|---|
| Line 1: | Line 1: | ||
| ====== Launchd ====== | ====== Launchd ====== | ||
| - | Mac OS X 10.4 Tiger introduced a new program called //launchd//. This Wiki page tries to collect the results for the Google Summer of Code 2005 Project to bring it to %%FreeBSD%%. Information may be very outdated. | + | Mac OS X 10.4 Tiger introduced a new program called // |
| - | [[http://video.google.com/videoplay?docid=9134517895937683240# | + | [[https://www.youtube.com/watch?v=mLwn_TbBntI|Launchd: One Program to Rule them all]] //(%%YouTube%%)// |
| + | |||
| + | %%FreeBSD%% machines can have uptimes anywhere between months and years, and that makes it all the more critical when they go down (for maintenance of course). To where every second of downtime can be lost business, or lost time for a development team that uses a centralized server. By porting launchd(8) to %%FreeBSD%% 6-CURRENT, boot up times and job management can both be handled more effectively, | ||
| + | |||
| + | This has the possibility, | ||
| ==== Updates ==== | ==== Updates ==== | ||
| - | * 20080921: A %%FreeBSD%% port has been spotted on [[https:// | + | |
| - | * 20060906: Launchd Subversion Repository Available at [[http:// | + | * 20150730: Meet [[http:// |
| + | * 20150629: The %%TrueOS%% fork of %%FreeBSD%% 10 has launchd running as init and a JSON-aware launchctl utility, along with notifyd, libdispatch and ASL integrated. This work has also been forward-ported to %%FreeBSD%% -CURRENT. %%FreeNAS%% 10, which is also based on %%FreeBSD%% 10.1, will be using launchd and a host of other tools ported from OS X / iOS. It has used the original, and latest, Apple sources and ported them along with MACH IPC. | ||
| + | * 20140910: Outback Dingo has made available an older port of pfSense' | ||
| + | * 20131211: There is a new [[https:// | ||
| + | | ||
| + | * 20060906: Launchd Subversion Repository Available at %%MacOSForge%% (('' | ||
| * 20060807: Launchd Adopts Apache License, Version 2.0! | * 20060807: Launchd Adopts Apache License, Version 2.0! | ||
| + | * 20051101: Recently merged code snapshot from zarzycki@Apple into perforce (('' | ||
| - | * 20051101: Recently merged code snapshot from zarzycki@Apple into [[http://p4web.freebsd.org/@md=d& | + | ===== 2005 GSoC Project Details ===== |
| + | The launchd(8) (('' | ||
| + | |||
| + | ===== Deliverables ===== | ||
| + | * Speed up %%FreeBSD%% | ||
| + | * Create a script, or other method for converting rc.d scripts from ports that a user installs, for launchd(8)' | ||
| + | * Port launchd(8) first as a user-land daemon, replacing init as PID 1 to be done later (as in, not within | ||
| + | * Reduce dependency on rc.d scripts as much as is feasibly possible, to where any rc.d scripts that still need to exist are started simultaneously along with the rest of the daemons that launchd(8) manages. | ||
| + | * Create a centralized management point for many of the duties that older unix daemons (cron, atd, watchdog, etc) formerly did. | ||
| ==== 2005 - End of Summer Synopsis ==== | ==== 2005 - End of Summer Synopsis ==== | ||
| Line 20: | Line 37: | ||
| **In the future** | **In the future** | ||
| - | As it stands right now, the code is still somewhat, well, very, unpolished. I'll take the blame on that one. I still intend on writing a plist format (the non-XML one) parser to incorporate into the code base, which will give users full advantage of everything launchd(8) can do, while maintaining backwards compatibilty with launchd/ | + | As it stands right now, the code is still somewhat, well, very, unpolished. I'll take the blame on that one. I still intend on writing a plist format (the non-XML one) parser to incorporate into the code base, which will give users full advantage of everything launchd(8) can do, while maintaining backwards compatibilty with launchd/ |
| **Licensing** | **Licensing** | ||
| - | Yes, yes, yes, this is still the APSL, which I can't help, maybe after I have a better working alpha, beta, or gamma(?) release of this, it'll be more appropriate to campaign to Apple to get a BSDL version as to allow minimal flaming when I try to squeeze launchd(8) into the base system (post-init replacement). //(This has changed, be sure to check the updates section.)// | ||
| - | ===== Project Description ===== | + | As mentioned in the " |
| - | Improving %%FreeBSD%% boot times, and manageability with [[http:// | + | |
| - | + | ||
| - | ===== Synopsis ===== | + | |
| - | %%FreeBSD%% machines can have uptimes anywhere between months and years, and that makes it all the more critical when they go down (for maintenance of course). To where every second of downtime can be lost business, or lost time for a development team that uses a centralized server. By porting launchd(8) to %%FreeBSD%% 6-CURRENT, boot up times and job management can both be handled more effectively, | + | |
| - | + | ||
| - | This has the possibility, | + | |
| ===== Milestones ===== | ===== Milestones ===== | ||
| * [finished] Remove all of the dependencies on autoconf/ | * [finished] Remove all of the dependencies on autoconf/ | ||
| - | * [finished] Use launchctl as a test subject for removing the CoreFoundation hooks and API calls | + | * [finished] Use launchctl as a test subject for removing the %%CoreFoundation%% hooks and API calls |
| - | * [finished] Strip out CoreFoundation calls from the main launchd(8) code | + | * [finished] Strip out %%CoreFoundation%% calls from the main launchd(8) code |
| * [finished] Be able to compile the core utilities of launchd(8) on any %%FreeBSD%% 6.xx system. | * [finished] Be able to compile the core utilities of launchd(8) on any %%FreeBSD%% 6.xx system. | ||
| * [finished] Allow launchd(8) to assume a non-PID-1 role, i.e., as a regular daemon, not _the_ daemon | * [finished] Allow launchd(8) to assume a non-PID-1 role, i.e., as a regular daemon, not _the_ daemon | ||
| Line 43: | Line 53: | ||
| * [work in progress] Start to make it _work_ as PID 1 | * [work in progress] Start to make it _work_ as PID 1 | ||
| * [work in progress] document code? *gasp* ;) | * [work in progress] document code? *gasp* ;) | ||
| - | |||
| - | ===== Deliverables ===== | ||
| - | * Speed up %%FreeBSD%% boot times noticeably. (to where there isn't a doubt that launchd(8) has made a definite effect on boot times) | ||
| - | * Create a script, or other method for converting rc.d scripts from ports that a user installs, for launchd(8)' | ||
| - | * Port [[http:// | ||
| - | * Reduce dependency on rc.d scripts as much as is feasibly possible, to where any rc.d scripts that still need to exist are started simultaneously along with the rest of the daemons that launchd(8) manages. | ||
| - | * Create a centralized management point for many of the duties that older unix daemons (cron, atd, watchdog, etc) formerly did. | ||
| - | |||
| - | ===== Project Details ===== | ||
| - | The [[http:// | ||
| - | |||
| - | ==== Bio ==== | ||
| - | I am Robert Tyler Ballance, currently a Computer Engineering major at Texas A&M University. I've been active in the BSD community for a year or two. (Was a core member of the ekkoBSD team in a past life as well.) Along with my open source efforts in the BSD community, my job for the university directly involves %%FreeBSD%%, | ||
| - | |||
| - | ==== Email ==== | ||
| - | R. Tyler Ballance | ||