e5401dc836675ab54f9aafb31490ca5cf08ed7e7
2 # Copyright (C) 2019 Ian Kelling
3 # SPDX-License-Identifier: AGPL-3.0-or-later
5 # Note: running this inside a cronjob, it wont mail any output if we end
6 # up rebooting from this script.
8 if [ -z "$BASH_VERSION" ]; then echo "error: shell is not bash" >&2; exit 1; fi
10 source /usr
/local
/lib
/err
13 m
() { printf "$pre %s\n" "$*"; "$@"; }
14 e
() { printf "$pre %s\n" "$*"; }
15 err
() { echo "[$(date +'%Y-%m-%d %H:%M:%S%z')]: $pre: $*" >&2; }
17 [[ $EUID == 0 ]] ||
exec sudo
-E "${BASH_SOURCE[0]}" "$@"
20 source /a
/bin
/bash_unpublished
/source-state
24 echo "pid $$. unattended upgrade, rebooting in $((x*10)) seconds" | wall
-n
28 if ! fuser
/var
/lib
/dpkg
/lock
&> /dev
/null
; then
29 echo "pid $$. unattended upgrade, rebooting now" | pee
cat "wall -n"
30 /a
/bin
/ds
/keyscript-on
34 echo "pid $$. unattended upgrade reboot waiting 10 seconds for dpkg lock" | wall
-n
37 echo "pid $$. dpkg locked for 5 minutes, automatic reboot failed" | pee
cat "wall -n"
41 if [[ $HOSTNAME != "$MAIL_HOST" ]]; then
42 ksta
=$
(needrestart
-b |
sed -n 's/NEEDRESTART-KSTA: *//p');
46 *) err error
: unknown kernel status
;;
50 # needsrestarts automatic restarts failed.
51 if ! out
=$
(/sbin
/needrestart
-p 2>&1); then