電源が切れたり停電する前に録音したいです。
uname -a
Linux xxx 4.9.0-4-amd64 #1 SMP Debian 4.9.51-1 (2017-09-28) x86_64 GNU/Linux
systemctl get-default
graphical.target
runlevel
N 5
私のスクリプトを編集してください。
sudo vim /etc/systemd/system/graphical.target.wants/log.service
[Unit]
Description=Run command at shutdown
Before=shutdown.target reboot.target
[Service]
Type=oneshot
RemainAfterExit=true
ExecStop=/bin/bash /home/log.sh
有効にしてください。
sudo systemctl enable log.service
Failed to enable unit: File log.service: No such file or directory
どうすれば修正できますか?以下の設定に問題があるのでしょうか?
sudo cat /etc/systemd/system/log.service
[Unit]
Description=Run command at shutdown
After=shutdown.target reboot.target
[Service]
Type=oneshot
RemainAfterExit=true
ExecStop=/bin/bash /home/log.sh
[Install]
WantedBy=graphical.target
有効化にsudo systemctl enable log.service
問題はありません。
なぜログ情報がなく、/home/log.sh
実行できないのですか?
答え1
このディレクトリにユニットを作成しないでくださいgraphical.target.wants
。これはシンボリックリンクに使用されます。代わりにディレクトリに直接作成してください/etc/systemd/system
。
[Install]
また、このコマンドを使用するときにインストールする場所を説明するセクションも必要です。systemctl enable
(あなたの場合はを使うことができますgraphical.target
。multi-user.target
もっと一般的なオプションであり、依存関係なので、graphical.target
起動時に取得します。)
そのため、以下で作成してください/etc/systemd/system/log.service
。
[Unit]
Description=...
[Service]
...
ExecStop=/bin/bash /home/log.sh
[Install]
WantedBy=multi-user.target
次に、次を使用して有効にします。
$ sudo systemctl enable log.service
これでこれが機能します。
依存関係が正しくない可能性があります。持っているが実行する必要があるサービスの依存関係をBefore=shutdown.target reboot.target
使用する可能性が高いです。After=
今後彼らはブロックされました。依存関係は終了時に逆の順序で機能するため、このセクションに依存する項目をリストします(例えば、、local-fs.target
)。 log.shを実行するにはファイルシステムをインストールする必要があるため、この手順は興味深いかもしれません。network.target
After=
RequiresMountsFor=