[launchd-changes] [23196] trunk/launchd/src/launchd_core_logic.c
source_changes at macosforge.org
source_changes at macosforge.org
Mon Apr 2 13:28:29 PDT 2007
Revision: 23196
http://trac.macosforge.org/projects/launchd/changeset/23196
Author: zarzycki at apple.com
Date: 2007-04-02 13:28:29 -0700 (Mon, 02 Apr 2007)
Log Message:
-----------
<rdar://problem/5105277> log what program(s) initiated a shutdown/reboot
Modified Paths:
--------------
trunk/launchd/src/launchd_core_logic.c
Modified: trunk/launchd/src/launchd_core_logic.c
===================================================================
--- trunk/launchd/src/launchd_core_logic.c 2007-04-02 19:08:10 UTC (rev 23195)
+++ trunk/launchd/src/launchd_core_logic.c 2007-04-02 20:28:29 UTC (rev 23196)
@@ -576,7 +576,7 @@
jobmgr_t jmi, jmn;
job_t ji, jn;
- jobmgr_log(jm, LOG_DEBUG, "Beginning job manager shutdown");
+ jobmgr_log(jm, LOG_DEBUG, "Beginning job manager shutdown with flags: %s", reboot_flags_to_C_names(jm->reboot_flags));
jm->shutting_down = true;
@@ -4408,7 +4408,10 @@
kern_return_t
job_mig_reboot2(job_t j, uint64_t flags)
{
+ char who_started_the_reboot[2048] = "";
+ struct kinfo_proc kp;
struct ldcred ldc;
+ pid_t pid_to_log;
if (getpid() != 1) {
return BOOTSTRAP_NOT_PRIVILEGED;
@@ -4420,10 +4423,25 @@
return BOOTSTRAP_NOT_PRIVILEGED;
}
+ for (pid_to_log = ldc.pid; pid_to_log; pid_to_log = kp.kp_eproc.e_ppid) {
+ int mib[] = { CTL_KERN, KERN_PROC, KERN_PROC_PID, pid_to_log };
+ size_t who_offset, len = sizeof(kp);
+
+ if (!job_assumes(j, sysctl(mib, 4, &kp, &len, NULL, 0) != -1)) {
+ return 1;
+ }
+
+ who_offset = strlen(who_started_the_reboot);
+ snprintf(who_started_the_reboot + who_offset, sizeof(who_started_the_reboot) - who_offset,
+ " %s[%u]%s", kp.kp_proc.p_comm, pid_to_log, kp.kp_eproc.e_ppid ? " ->" : "");
+ }
+
root_jobmgr->reboot_flags = (int)flags;
launchd_shutdown();
+ job_log(j, LOG_DEBUG, "reboot2() initiated by:%s", who_started_the_reboot);
+
return 0;
}
-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://lists.macosforge.org/pipermail/launchd-changes/attachments/20070402/886db8bb/attachment.html
More information about the launchd-changes
mailing list