# Copyright (C) 2019 Ian Kelling
# SPDX-License-Identifier: AGPL-3.0-or-later
+# usage: set DEBUG env var to anything to output to stdout
+
# Note: running this inside a cronjob, it wont mail any output if we end
# up rebooting from this script.
hn=$(hostname -f)
source /a/bin/bash_unpublished/source-state
+d() {
+ if [[ $DEBUG ]]; then
+ pee cat "wall -n"
+ else
+ # 2>/dev/null hopefully gets rid of errors like: wall: /dev/pts/0: No such file or directory
+ sed 's/^/myupgrade /' | pee logger "wall -n" 2>/dev/null
+ fi
+}
myreboot() {
for x in {30..1}; do
- echo "pid $$. unattended upgrade, rebooting in $((x*10)) seconds" | wall -n
+ echo "pid $$. unattended upgrade, rebooting in $((x*10)) seconds" | wall -n 2>/dev/null
sleep 10
done
for x in {30..1}; do
if ! fuser /var/lib/dpkg/lock &> /dev/null; then
- echo "pid $$. unattended upgrade, rebooting now" | pee cat "wall -n"
+ echo "pid $$. unattended upgrade, rebooting now" | d
/a/bin/ds/keyscript-on
/sbin/reboot
exit 0
fi
- echo "pid $$. unattended upgrade reboot waiting 10 seconds for dpkg lock" | wall -n
+ echo "pid $$. unattended upgrade reboot waiting 10 seconds for dpkg lock" | wall -n 2>/dev/null
sleep 10
done
- echo "pid $$. dpkg locked for 5 minutes, automatic reboot failed" | pee cat "wall -n"
+ echo "pid $$. dpkg locked for 5 minutes, automatic reboot failed" | d
}
+case $HOSTNAME in
+ kd)
+ /a/bin/buildscripts/prometheus
+ ;;
+esac
+
+
# TODO: executed from cron, this doesnt sent an email when we reboot,
# because rebooting from the script stops the ability to send email.
# We should figure some workaround.
if ! out=$(/sbin/needrestart -p 2>&1); then
- e "$out"
- if [[ $HOSTNAME != "$MAIL_HOST" ]]; then
+ if [[ $HOSTNAME == "$MAIL_HOST" ]]; then
+ needrestart -r l
+ else
myreboot
fi
fi