Como executar um script no desligamento do Debian 9 ou Raspbian 8 (Jessie)

3

Eu gostaria de executar este script de shell ao reiniciar e desligar:

#!/bin/sh
touch /test

Suas permissões são

-rwxr-xr-x 1 root root 22 Feb 24 09:34 /etc/init.d/te1

E tem esses links

/etc/rc0.d/K01te1 -> ../init.d/te1
/etc/rc6.d/K01te1 -> ../init.d/te1

Ele está trabalhando na inicialização se eu tiver um link

/etc/rc5.d/S01te1 -> ../init.d/te1

Mas eu preciso que ele seja desligado.

Como posso fazer isso nos testes 8 e 9 do Debian?

A sugestão touch /var/lock/subsys/te1 não funcionou.

    
por Frank Breitling 24.02.2017 / 10:21

3 respostas

7

Eu tenho a impressão de que outros parecem ter problemas em fazer isso funcionar também. Parece que iniciar com o Debian 8.0 (Jessie) systemd quebra a compatibilidade com o init do System V.

Então, aqui , foi sugerido criar um serviço systemd. A solução é usada aqui e se parece com isso:

[Unit]
Description=The te1 script

[Service]
Type=oneshot
RemainAfterExit=true
ExecStart=/bin/true
ExecStop=/usr/local/bin/te1

[Install]
WantedBy=multi-user.target

O serviço systemd precisa ser salvo em /lib/systemd/system/te1.service e instalado com sudo systemctl enable te1 .

    
por 26.02.2017 / 16:29
0

parece que você pode encontrá-lo com um pouco de pesquisa, mas:
coloque seu script em /etc/rc6.d conceder permissões necessárias:

sudo chmod +x K99_script

e alguns pontos :
extensão não .sh
K_99 é necessário
scripts aqui são executados em ordem alfabética
Leia aqui

    
por 24.02.2017 / 10:54
-1

Tente executar seu script como um startscript no runlevel 6

ln -s /etc/init.d/te1 etc/rc0.d/S01te1
    
por 24.02.2017 / 10:54