Por que meu script para o botão de energia não funciona mais de 14.04 LTS e 16.04 LTS?

2

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

    
por Schiki 12.07.2016 / 16:08

0 respostas