#!/bin/bash if [[ $(/usr/sbin/checkrestart | wc -l) != 1 ]]; then for x in {30..1}; do echo "pid $PID. unattended upgrade, rebooting in $((x*10)) seconds" | wall -n sleep 10 done for x in {30..1}; do if ! fuser /var/lib/dpkg/lock &> /dev/null; then /sbin/reboot exit 0 fi echo "pid $PID. unattended upgrade reboot waiting 10 seconds for dpkg lock" | wall -n sleep 10 done echo "pid $PID. dpkg locked for 5 minutes, automatic reboot failed" | pee cat "wall -n" fi