Skip site navigation (1)Skip section navigation (2)
Date:      Mon, 18 Aug 2008 09:53:44 -0700
From:      Jeff Kletsky <jeff+freebsd@wagsky.com>
To:        freebsd-questions@freebsd.org
Subject:   Re: FreeBSD-7 reboots hourly
Message-ID:  <48A9A918.4030607@wagsky.com>

next in thread | raw e-mail | index | archive | help
I had a similar puzzle to unravel with a CentOS (RHEL equivalent) box. 
The clues there were in the log files that showed that gdm was exec-ing 
shutdown. I'm not suggesting that is the answer here, but looking at 
your logs may help.

While the CentOS shutdown process is different than FreeBSD, you might 
get some use out of "wrapping" the commands that shutdown the box to see 
who called them. The script below worked for CentOS and probably needs 
some modification for FreeBSD, but the idea is to log the caller (and 
caller's caller) of all the executables that are used to 
shutdown/halt/reboot etc. the system.

(Note that this one errors in ps if there isn't a ppid at one of the 
levels, but it doesn't seem to hurt anything and could be cleaned up 
with a check of the ppid variables used).

This is a ***CentOS*** script -- use for concept with FreeBSD

$ cat /sbin/shutdown
#!/bin/bash
### Log who is calling a program
###
### Program to be executed
###
true_executable="/sbin/shutdown.orig"
#
# Helper commands
#
ps="/bin/ps --noheaders"
logger="/usr/bin/logger -t $0[$$]"
#
this_ps_line=`${ps} up $$`;
# Get parent
this_ppid=`${ps} -p $$ -o ppid=`;
ppid_ps_line=`${ps} up ${this_ppid}`
# And parent's parent
ppid_ppid=`${ps} -p ${this_ppid} -o ppid=`;
ppid_ppid_ps_line=`${ps} up ${ppid_ppid}`;
${logger} "Called by: ${ppid_ps_line}"
${logger} "w/ parent: ${ppid_ppid_ps_line}"
${logger} "Remaining parameters: $@"
exec ${true_executable} $@





Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?48A9A918.4030607>