[launchd-changes] [23029] trunk/launchd/src
source_changes at macosforge.org
source_changes at macosforge.org
Mon Feb 5 14:11:17 PST 2007
Revision: 23029
http://trac.macosforge.org/projects/launchd/changeset/23029
Author: zarzycki at apple.com
Date: 2007-02-05 14:11:16 -0800 (Mon, 05 Feb 2007)
Log Message:
-----------
<rdar://problem/4976905> turn SystemStarter into a launchd job
Modified Paths:
--------------
trunk/launchd/src/Makefile.am
trunk/launchd/src/Makefile.in
trunk/launchd/src/SystemStarter.c
trunk/launchd/src/launchctl.c
Modified: trunk/launchd/src/Makefile.am
===================================================================
--- trunk/launchd/src/Makefile.am 2007-02-05 21:35:42 UTC (rev 23028)
+++ trunk/launchd/src/Makefile.am 2007-02-05 22:11:16 UTC (rev 23029)
@@ -93,7 +93,8 @@
mkdir -p $(DESTDIR)/$(sysconfdir)/mach_init_per_user.d
mkdir -p $(DESTDIR)/Library/LaunchDaemons
mkdir -p $(DESTDIR)/Library/LaunchAgents
+ mkdir -p $(DESTDIR)/System/Library/LaunchAgents
mkdir -p $(DESTDIR)/System/Library/LaunchDaemons
- mkdir -p $(DESTDIR)/System/Library/LaunchAgents
+ cp $(srcdir)/com.apple.SystemStarter.plist $(DESTDIR)/System/Library/LaunchDaemons
endif
Modified: trunk/launchd/src/Makefile.in
===================================================================
--- trunk/launchd/src/Makefile.in 2007-02-05 21:35:42 UTC (rev 23028)
+++ trunk/launchd/src/Makefile.in 2007-02-05 22:11:16 UTC (rev 23029)
@@ -1107,8 +1107,9 @@
@LIBS_ONLY_FALSE@ mkdir -p $(DESTDIR)/$(sysconfdir)/mach_init_per_user.d
@LIBS_ONLY_FALSE@ mkdir -p $(DESTDIR)/Library/LaunchDaemons
@LIBS_ONLY_FALSE@ mkdir -p $(DESTDIR)/Library/LaunchAgents
+ at LIBS_ONLY_FALSE@ mkdir -p $(DESTDIR)/System/Library/LaunchAgents
@LIBS_ONLY_FALSE@ mkdir -p $(DESTDIR)/System/Library/LaunchDaemons
- at LIBS_ONLY_FALSE@ mkdir -p $(DESTDIR)/System/Library/LaunchAgents
+ at LIBS_ONLY_FALSE@ cp $(srcdir)/com.apple.SystemStarter.plist $(DESTDIR)/System/Library/LaunchDaemons
# Tell versions [3.59,3.63) of GNU make to not export all variables.
# Otherwise a system limit (for SysV at least) may be exceeded.
.NOEXPORT:
Modified: trunk/launchd/src/SystemStarter.c
===================================================================
--- trunk/launchd/src/SystemStarter.c 2007-02-05 21:35:42 UTC (rev 23028)
+++ trunk/launchd/src/SystemStarter.c 2007-02-05 22:11:16 UTC (rev 23029)
@@ -22,6 +22,9 @@
* @APPLE_APACHE_LICENSE_HEADER_END@
**/
+#include <sys/types.h>
+#include <sys/stat.h>
+#include <paths.h>
#include <unistd.h>
#include <crt_externs.h>
#include <fcntl.h>
@@ -147,7 +150,27 @@
}
}
- exit(system_starter(anAction, aService));
+ int ssec = system_starter(anAction, aService);
+ struct stat sb;
+
+ if (anAction == kActionStart && stat("/etc/rc.local", &sb) != -1) {
+ int wstatus;
+ pid_t rclp;
+
+ switch ((rclp = fork())) {
+ case -1:
+ break;
+ case 0:
+ execlp(_PATH_BSHELL, _PATH_BSHELL, "/etc/rc.local", NULL);
+ _exit(EXIT_FAILURE);
+ break;
+ default:
+ waitpid(rclp, &wstatus, 0);
+ break;
+ }
+ }
+
+ exit(ssec);
}
Modified: trunk/launchd/src/launchctl.c
===================================================================
--- trunk/launchd/src/launchctl.c 2007-02-05 21:35:42 UTC (rev 23028)
+++ trunk/launchd/src/launchctl.c 2007-02-05 22:11:16 UTC (rev 23029)
@@ -1274,14 +1274,6 @@
_vproc_set_global_on_demand(false);
- const char *SystemStarter_tool[] = { "SystemStarter", NULL };
- assumes(fwexec(SystemStarter_tool, false) != -1);
-
- if (path_check("/etc/rc.local")) {
- const char *rc_local_tool[] = { _PATH_BSHELL, "/etc/rc.local", NULL };
- assumes(fwexec(rc_local_tool, true) != -1);
- }
-
return 0;
}
-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://lists.macosforge.org/pipermail/launchd-changes/attachments/20070205/449c1acf/attachment.html
More information about the launchd-changes
mailing list