# 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
+ echo ok | sed 's/^/myupgrade /' | pee logger "wall -n"
+ fi
+}
myreboot() {
for x in {30..1}; do
echo "pid $$. unattended upgrade, rebooting in $((x*10)) seconds" | wall -n
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
echo "pid $$. unattended upgrade reboot waiting 10 seconds for dpkg lock" | wall -n
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
}
# We should figure some workaround.
if ! out=$(/sbin/needrestart -p 2>&1); then
- e "$out"
+ printf "%s\n\n" "$out"
if [[ $HOSTNAME != "$MAIL_HOST" ]]; then
myreboot
fi