Por que um script em /etc/rc6.d não é executado na reinicialização?

3

Estou tentando fazer o desligamento / reinicialização em um Raspberry Pi. Eu estou correndo mais recente Raspbian. Esta é minha configuração:

cat /etc/init.d/log-shutdown.sh :

#!/bin/sh

### BEGIN INIT INFO
# Provides:          log-shutdown
# Required-Start:
# Required-Stop:     umountroot
# Should-Stop:
# Default-Start:
# Default-Stop:      0 6
# Short-Description: Log shutdown date.
### END INIT INFO

echo "I ran">/log-shutdown

ls -Al /etc/init.d/log-shutdown.sh :

-rwxr-xr-x 1 root root 258 Apr 15 20:10 /etc/init.d/log-shutdown.sh

ls -Al /etc/rc0.d/*log-shutdown*

lrwxrwxrwx 1 root root 25 Apr 15 19:41 /etc/rc0.d/K01log-shutdown.sh -> ../init.d/log-shutdown.sh

ls -Al /etc/rc6.d/*log-shutdown* :

lrwxrwxrwx 1 root root 25 Apr 15 19:41 /etc/rc6.d/K01log-shutdown.sh -> ../init.d/log-shutdown.sh

Depois de executar sudo shutdown -r now e aguardar a reinicialização do Pi, /log-shutdown não será gravado. Executar manualmente sudo /etc/init.d/log-shutdown.sh grava no arquivo. O que estou fazendo errado?

    
por Mark Raymond 15.04.2016 / 21:20

1 resposta

1

Parece que encontrei uma solução, mas não faço ideia de por que é necessário, pois não está no Ubuntu. /etc/init.d/log-shutdown (eu removi o .sh ) agora está assim:

#!/bin/sh

### BEGIN INIT INFO
# Provides:          log-shutdown
# Required-Start:    $remote_fs
# Required-Stop:     $remote_fs
# Default-Start:     2 3 4 5
# Default-Stop:      0 1 6
# Short-Description: Log shutdown date
### END INIT INFO

case "$1" in
  start)
    touch /var/lock/subsys/log-shutdown
    ;;
  stop)
    date +%s > /data/log/log-shutdown
    ;;
  *)
    echo "Usage: /etc/init.d/log-shutdown stop"
    exit 1
    ;;
esac

O bit importante é touch /var/lock/subsys/log-shutdown , que informa ao sistema init que log-shutdown está sendo executado, por isso é incomodativo executar o script de parada no encerramento / reinicialização. Eu acho.

    
por 15.04.2016 / 23:54