Como faço para que meu script seja executado ANTES de qualquer seqüência de desligamento como desmontar minha unidade externa

2

Eu tenho um script de backup em ~/scripts/backup.sh e meu upstart conf em ~/.config/upstart/shutdown.conf .

description "my shutdown script"
start on desktop-end

task
console log
script
  exec ~/scripts/backup.sh start
end script

Meu script faz o backup em um disco rígido externo on desktop-end , mas o disco rígido externo é desmontado antes que meu script seja chamado.

Como posso preceder a sequência de encerramento com o meu script e depois retomar apenas quando o meu script terminar ?

Eu tentei a solução de esta postagem , mas o gancho on starting rc não está funcionando.

Obrigado.

    
por deanresin 29.05.2016 / 20:28

1 resposta

2

Crédito para esta resposta postada

Primeiro, eu não sei porque o upstart funciona, já que o Ubuntu 15.10 deveria estar usando o systemd. Então usei o systemd para resolver meu problema.

Eu criei uma "unidade" systemd chamada backup.service

[Unit]
Description=Backup script
DefaultDependencies=no
RequiresMountsFor=/mnt/D21EF5DA1EF5B795 /home /media/external
Before=shutdown.target reboot.target halt.target


[Service]
ExecStart=/bin/bash /home/deanresin/scripts/backup.sh start
Type=oneshot

[Install]
WantedBy=multi-user.target

RequiresMountsFor garante que os discos rígidos permaneçam montados antes e durante o script. Before=shutdown.target reboot.target halt.target é o gancho que chamará o script de backup.

Coloque o arquivo backup.service em / etc / systemd / system e sudo chmod u+x /etc/systemd/system/backup.service para torná-lo executável.

Agora ative o backup.service por systemctl enable backup.service

E voila! O script de backup "backup.sh" deve ser chamado na reinicialização, desligamento ou parada e executado antes que as unidades especificadas sejam desmontadas.

    
por deanresin 30.05.2016 / 23:24