Код: Выделить всё
#!/bin/sh -xv
# programms path
sysctl="/sbin/sysctl"
shutdown="/sbin/shutdown"
awk="/usr/bin/awk"
who="/usr/bin/who"
grep="/usr/bin/grep"
su="/usr/bin/su"
sleep="/bin/sleep"
wall="/usr/bin/wall"
echo="/bin/echo"
# env`s
LANG="ru_RU.KOI8-R"
export LANG
MM_CHARSET="KOI8-R"
export MM_CHARSET
# power source
if [ `${sysctl} hw.acpi.battery.state | ${awk} '{print $2}'` -eq 2 ]
then
# cable
exit 0;
else
# battery
if [ `${sysctl} hw.acpi.battery.life | ${awk} '{print $2}'` -lt 5 ]
then
# echo message
${who} | ${grep} -v tty |
while read user_string
do
DISPLAY="`${echo} ${user_string} | awk '{print $2}'`"
export DISPLAY
${su} `${echo} ${user_string} | awk '{print $1}'` \
-c "/usr/X11R6/bin/Xdialog --title \
\"Компьютер отключается!\" \
--icon /usr/X11R6/share/doc/xdialog/samples/warning.xpm \
--msgbox \"Компьютер отключится через минуту!\nСадится батарея!\" 0 0"&
done
${echo} "Компьютер отключится через минуту!" | ${wall}
# shutdown mashine
${sleep} 60 && ${shutdown} -p now &
exit 0;
fi
fi
exit 0;