fi
reason="$1"
+touch_stuff() {
+ local user="$1"
+ local home=$(getent passwd "$user" | awk -F: '{print $6}')
+
+ if ! test -e "$home"/NO-DAEMON-PLEASE; then
+ if [ -e "$home"/build/buildd.pid ] ; then
+ echo "Touching ${home}/NO-DAEMON-PLEASE ${home}/EXIT-DAEMON-PLEASE"
+ sudo -u "$user" touch "$home"/NO-DAEMON-PLEASE "$home"/EXIT-DAEMON-PLEASE
+ sudo -u "$user" sh -c "echo waiting-for-clean-shutdown > '${home}/'NO-DAEMON-PLEASE"
+ sudo chgrp -v adm "$home"/NO-DAEMON-PLEASE
+
+ echo "Sending HUP to $user:buildd"
+ sudo -u "$user" kill -HUP "$(sudo cat "${home}"/build/buildd.pid)"
+ else
+ echo "$user: no-daemon-please does not exist, but there is no buildd.pid file either"
+ if pgrep -u "$user" -x buildd ; then
+ echo "But there is a buildd running. Bad?"
+ exit 3
+ fi
+ fi
+ else
+ echo "no-daemon-please already exists"
+ fi
+}
wall_counter=0
buildd_wait_and_reboot() {
echo -n "Waiting for buildd to shut down"
- while test -e ~buildd/build/buildd.pid ; do
+ while test -e ~buildd/build/buildd.pid || test -e ~buildd2/build/buildd.pid; do
echo -n "."
sleep 5
maybe_wall
done
echo
- if pgrep -u buildd -x buildd ; then
+ if pgrep -u buildd -x buildd || pgrep -u buildd2 - x buildd; then
echo "pidfile is gone, but buildd process still runs"
while pgrep -u buildd -x buildd ; do
echo -n "."
if grep 'waiting-for-clean-shutdown' ~buildd/NO-DAEMON-PLEASE > /dev/null; then
sudo -u buildd sh -c 'echo delete-on-boot > ~buildd/NO-DAEMON-PLEASE'
fi
+ if grep 'waiting-for-clean-shutdown' ~buildd2/NO-DAEMON-PLEASE > /dev/null; then
+ sudo -u buildd2 sh -c 'echo delete-on-boot > ~buildd2/NO-DAEMON-PLEASE'
+ fi
if [ "$halt" = 1 ]; then
/sbin/shutdown -h 1 "$reason"
else
exit 3
fi
-if ! test -e ~buildd/NO-DAEMON-PLEASE; then
- if [ -e ~buildd/build/buildd.pid ] ; then
- echo "Touching ~buildd/NO-DAEMON-PLEASE ~buildd/EXIT-DAEMON-PLEASE"
- sudo -u buildd touch ~buildd/NO-DAEMON-PLEASE ~buildd/EXIT-DAEMON-PLEASE
- sudo -u buildd sh -c 'echo waiting-for-clean-shutdown > ~buildd/NO-DAEMON-PLEASE'
- sudo chgrp -v adm ~buildd/NO-DAEMON-PLEASE
-
- echo "Sending HUP to buildd"
- sudo -u buildd kill -HUP `sudo cat ~buildd/build/buildd.pid`
- else
- echo "no-daemon-please does not exist, but there is no buildd.pid file either"
- if pgrep -u buildd -x buildd ; then
- echo "But there is a buildd running. Bad?"
- exit 3
- fi
- fi
-else
- echo "no-daemon-please already exists"
-fi
+touch_stuff buildd
+[ -d ~buildd2 ] && touch_stuff buildd2
buildd_wait_and_reboot