#!/bin/sh trap "" 0 1 2 15 tput clear # Find the non-local logins, probably on ttyp etc. Or on pts/N. # grep -E is equivalent to egrep but does not exist everywhere LOG="`w -s | egrep -v 'tty[0-9]' | tail +2`" count=`echo "$LOG" | wc -l` dont_panic() { dialog --infobox " THE SYSTEM IS SHUTTING DOWN !!!!!!!WAIT!!!!!! !!!!DON'T POWER DOWN YET!!!!!!!! wait for this message to clear. $* " 15 60 & } if [ $count -lt 2 ]; then dont_panic " The system is shutting down" /sbin/shutdown -r now "sistema esta en shutdown" else dialog --yesno " There are the following users in the machine: `echo "$LOG"` Shutdown will be delayed by 2 minutes in order to warn the users. Do you still want to start the shutdown? " `expr 14 + $count` 70 if [ $? = 0 ];then dont_panic " Shutting down in 2 minutes" /sbin/shutdown -r +2 "sistema esta en shutdown" else sleep 1 dialog --infobox " The shutdown has been aborted " 7 50 & sleep 5 tput clear fi fi