systemd:読み取り専用としてマウントされた後にファイルシステムが閉じられたときにスクリプトを実行する

systemd:読み取り専用としてマウントされた後にファイルシステムが閉じられたときにスクリプトを実行する

ファイルシステムを読み取り専用で再マウントした後、シャットダウン時にスクリプトを実行する方法はありますか?

ワイヤレスソケットにラズベリーパイが接続されており、送信機とスクリプトを介して制御できます。ファイルシステムが読み取り専用でマウントされたら、シャットダウン時にそのソケットを閉じたいです(Raspberry Piの電源を切る)。

私はこれを試しました:

[Unit]
Description=Test
DefaultDependencies=no
Requires=shutdown.target umount.target final.target
After=shutdown.target umount.target final.target

[Service]
Type=oneshot
ExecStart=/test
KillMode=none

[Install]
WantedBy=halt.target

script/test は現在のインストールを出力します。シャットダウン時に実行されると、ルートファイルシステムが予想される読み取り専用状態ではなく読み取り/書き込み状態にあることを示します。

編集する:

/テスト内容:

#!/bin/bash

echo -n 'Debug-Mount: ' > /dev/tty1
cat /proc/mounts | grep /dev/sda > /dev/tty1

終了時の画面出力:

ここに画像の説明を入力してください。

ベストアンサー1

確かな解決策が見つかりました。スクリプトを/usr/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」(選択した操作に応じて)ディレクトリ内のすべての実行可能ファイルは並列に実行され、すべての実行可能ファイルが完了するまで実行は続行されません。

おすすめ記事