~/scripts/backup.sh
にバックアップスクリプトがあり、~/.config/upstart/shutdown.conf
にupstart confがあります。
description "my shutdown script"
start on desktop-end
task
console log
script
exec ~/scripts/backup.sh start
end script
スクリプトは外部ハードドライブon desktop-end
にバックアップされますが、スクリプトが呼び出される前に外部ハードドライブがマウント解除されます。
シャットダウンシーケンスの前にスクリプトを実行し、スクリプトが完了したときにのみ再開する方法
this postから解決策を試しましたが、フックon starting rc
が機能しません。
ありがとう。
これに対するクレジット 回答の投稿
まず、Ubuntu 15.10はsystemdを代わりに使用する必要があるため、なぜupstartが機能するのかまったくわかりません。そこで、問題を解決するためにsystemdを使用しました。
Backup.serviceというsystemdの「ユニット」を作成します
[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
は、スクリプトの実行前および実行中にこれらのハードドライブがマウントされたままになるようにします。 Before=shutdown.target reboot.target halt.target
は、バックアップスクリプトを呼び出すフックです。
Backup.serviceファイルを/ etc/systemd/systemおよびSudo chmod u+x /etc/systemd/system/backup.service
に配置して、実行可能にします。
systemctl enable backup.service
でbackup.serviceを有効にします
そして出来上がり!バックアップスクリプト「backup.sh」は、再起動、シャットダウン、または停止時に呼び出され、指定されたドライブがアンマウントされる前に実行される必要があります。