再起動またはシャットダウン時に/usr/lib/systemd/system-shutdown/でスクリプトをどのように実行できますか?

再起動またはシャットダウン時に/usr/lib/systemd/system-shutdown/でスクリプトをどのように実行できますか?

~によるとこの回答 そしてこのバグレポート スクリプトを入れてください。

/usr/lib/systemd/system-shutdown/

またはDebianの場合

/lib/systemd/system-shutdown/

再起動またはシャットダウン時に実行します。 ~から

https://www.freedesktop.org/software/systemd/man/systemd-halt.service.html:

実際のシステム quit/poweroff/reboot/kexec を実行する前に、systemd-shutdown は /usr/lib/systemd/system-shutdown/ にあるすべての実行可能ファイルを実行し、「halt」、「poweroff」、「reboot」という引数を渡します。または、「kexec」(選択した操作に応じて)ディレクトリ内のすべての実行可能ファイルは並列に実行され、すべての実行可能ファイルが完了するまで実行は続行されません。

私のスクリプトは以下に説明されています。Debian 9またはRaspbian 8で終了時にスクリプトを実行する方法(Jessie)ように:

#!/bin/sh
touch /test

しかし、私のDebianシステムでは実行されていないようです。でも、次のように報告します。抜け穴

ベストアンサー1

実際、スクリプトは実行中です。 Bigonとバグレポートで指摘したように、touchスクリプトが実行されたときにファイルシステムがすでに読み取り専用でマウントされているため、機能しません。/lib/systemd/system-shutdown/

これは次のようにマウントし、fsを読み書きすることで証明できますtouch

#!/bin/sh
mount -oremount,rw /
touch /test
mount -oremount,ro /

これで/test、再起動した後にのみ実際に表示されます。

しかし、これはまた、このフォルダを介して私のスクリプトを実行するのが遅すぎるため、役に立たないことを意味します。

ログファイルなどに書き込むには、推奨されるサービスを介してスクリプトを事前に実行する必要があります。ビゴン。私はこれを説明しますDebian 9またはRaspbian 8で終了時にスクリプトを実行する方法(Jessie)

おすすめ記事