Executando um script no início do protocolo de desligamento (não no final)?

0

É possível executar um script antes do desligamento? Isso significa que o sistema ainda está totalmente funcional.

Eu tentei colocar meu script de desligamento em /lib/systemd/system-shutdown/test-script . Ele será executado, mas pelo que entendi, ele é executado apenas imediatamente antes do desligamento. Por exemplo, o disco já está montado no modo somente leitura. Isso pode ser corrigido, mas envolvendo o script com:

#!/bin/bash
mount -oremount,rw /
... do something ...
mount -oremount,ro /

O que eu preciso e não consigo trabalhar, porém, é conexão à internet. Quando o script é executado, a conexão com a internet parece não estar mais disponível.

É possível executar um script diretamente no início do protocolo de desligamento?

Estou testando com o Ubuntu 16.04.

    
por Philipp Claßen 08.05.2017 / 13:03

2 respostas

0

Encontrei a resposta no link .

Para resumir, esta solução funciona para mim (no Ubuntu 16.04):

Crie um arquivo /etc/systemd/system/my-cleanup.service :

[Unit]
Description=Test cleanup at shutdown

[Service]
Type=oneshot
RemainAfterExit=true
ExecStart=/bin/true
ExecStop=/path/to/my-cleanup-script.sh

[Install]
WantedBy=multi-user.target

(Assumindo que o script de encerramento está disponível em /path/to/my-cleanup-script.sh e é executável.)

Finalmente, ative o serviço systemd via:

sudo systemctl enable my-cleanup.service
sudo systemctl start my-cleanup.service
    
por Philipp Claßen 08.05.2017 / 13:22
0

Em relação à Resposta 1. Confio que a solução funcionará "durante" o desligamento, mas como o OP perguntou it will run right at the begin of the shutdown , não tenho certeza.
Este link é mais explícito sobre o momento em que um script será executado durante o desligamento: link
Por favor, note que eu não testei no meu sistema, só estou retransmitindo minhas descobertas.

    
por user680858 08.05.2017 / 16:54