web-dev-qa-db-fra.com

Comment puis-je exécuter mon script AVANT toute séquence d'arrêt telle que le démontage de mon lecteur externe

J'ai un script de sauvegarde dans ~/scripts/backup.sh et ma config récente dans ~/.config/upstart/shutdown.conf.

description "my shutdown script"
start on desktop-end

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

Mon script est sauvegardé sur un disque dur externe on desktop-end mais le disque dur externe est démonté avant que mon script ne soit appelé.

Comment puis-je faire précéder la séquence d'arrêt avec mon script et ne le reprendre que lorsque mon script est terminé ?

J'ai essayé la solution de this post mais le hook on starting rc ne fonctionne pas.

Merci.

3
deanresin

Crédit à ceci réponse affichée

Premièrement, je ne sais pas pourquoi upstart fonctionne du tout, car Ubuntu 15.10 devrait plutôt utiliser systemd. J'ai donc utilisé systemd pour résoudre mon problème.

Je crée une "unité" systemd appelée 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 s'assure que ces disques durs restent montés avant et pendant le script. Before=shutdown.target reboot.target halt.target est le raccord qui appellera le script de sauvegarde.

Placez le fichier backup.service dans/etc/systemd/system et Sudo chmod u+x /etc/systemd/system/backup.service pour le rendre exécutable.

Maintenant, activez le backup.service par systemctl enable backup.service

Et le tour est joué! Le script de sauvegarde "backup.sh" doit être appelé au redémarrage, à l'arrêt ou à l'arrêt et exécuté avant le démontage des lecteurs spécifiés.

3
deanresin