Eu tenho um pequeno homeserver baseado no ubuntu 16.04 LTS sem uma interface gráfica do usuário. Ele foi criado com 10.04 LTS e sempre atualizado.
Na versão 13 eu mudei o comportamento do botão power via script para perceber que o shutdown quando o powerbutton é pressionado uma vez e suspender quando o powerbutton é pressionado duas vezes dentro de dois segundos é iniciado. O script funciona bem até o upgrade para a versão 14.04. Até esse momento, o script só funciona se eu iniciá-lo via linha de comando. Se for executado via powerbutton-event, ele sempre emitirá dois bipes e o servidor entrará em espera. Parece que a construção se não está funcionando! Eu tive um pouco de sucesso quando coloquei doublebrackets if [[ -e $LOCKFILE ]]
em torno do teststatement. A construção if funcionou, mas a exclusão do arquivo de bloqueio não funciona.
/etc/acpi/powerbutton.sh (vinculado ao evento powerbutton):
#!/bin/sh
# /etc/acpi/powerbtn.sh
[ -r /usr/share/acpi-support/power-funcs ] && . /usr/share/acpi-support/power-funcs
# call the subscript as single threat
/etc/acpi/suspend_or_shutdown.sh &
/etc/acpi/suspend_or_shutdown.sh:
#!/bin/sh
#/etc/acpi/suspend_or_shutdown.sh
[ -r /usr/share/acpi-support/power-funcs ] && . /usr/share/acpi-support/power-funcs
# 1x pressed = halt (within 2s)
# 2x pressed = suspend to disk
#Skip if we just in the middle of resuming
test -f /var/lock/acpisleep && exit 0
#file for decision
LOCKFILE=/var/lock/suspend_or_shutdown.lock
#acustic feedback
beep -l 50 -D 500
#exists /run/lock/suspend_or_shutdown.lock ?
if [ -e $LOCKFILE ]
then
#yes -> suspend (power button pressend second time)
#del lockfile
rm $LOCKFILE
# 2x beep for feedback
beep -r 2 -d 100
# SLEEP to S3
# pm-suspend
### OR ###
acpitool --suspend
else
#no -> create lockfile with PID
echo "$$" > $LOCKFILE
#wait 2s
sleep 2
#if pressed 2x, lockfile is deleted
if [ -e $LOCKFILE ]
then
#delete lockfile
rm $LOCKFILE
# 1x beep
beep
# shutdown server
shutdown -h now "Power button pressed"
else
exit 0
fi
fi
Eu não sabia por que o script não está funcionando (exceto via linha de comando). Se alguém teve uma idéia, por favor me avise ... Muito obrigado: -)
Schiki