/bin/mount アクティブな systemd.mount に依存関係を追加するには?

/bin/mount アクティブな systemd.mount に依存関係を追加するには?

ファイルシステムをマウントする前とアンマウントした後、systemdは自動的にプログラムを呼び出すことを望みますmount /mnt/test(ここでテストするために、実際の環境でプライマリデバイスのロックを解除するためcryptsetup)。echo

そして/etc/systemd/system/stickbak-encryption.service

[Unit]
Description=stickbak encryption
Before=mnt-test.mount
StopWhenUnneeded=true

[Service]
Type=oneshot
ExecStart=/bin/echo Unlock device.
RemainAfterExit=true
ExecStop=/bin/echo Lock device.

[Install]
RequiredBy=mnt-test.mount

そして/etc/fstab(一部):

/dev/$DEVICE /mnt/test auto noauto 0 0

systemctl start mnt-test.mountこれは(デーモンが再ロードされ、サービスがアクティブになった後)とsystemctl stop mnt-test.mount(ルートとして)別々に機能します。

mount /mnt/testしかし、Onはsystemctl status mnt-test.mount stickbak-encryption後者のサービスがありinactive (dead)、前者があることを示していますactive (mounted)

/bin/mount呼び出し時にも尊重される依存関係をどのように設定できますか?装着されているデバイスのステータス表示mount /mnt/testがに切り替わったように見えるExecMount=/bin/mount /dev/$DEVICE /mnt/test -t auto -o noautoので、systemdに明確に通知します。

ベストアンサー1

最近でも同じ質問を自分に聞いてみましたが、まもなくそうではないことに気づきました。

mountコマンドラインプログラムを使用すると、systemdはデバイスのmount読み込み/etc/fstab(またはコマンドラインからオプションを取得する)とマウントには関連しません。 systemd マウントデバイスを起動すると、systemd によって解決され、内部で mount システムコールを使用してマウントを実行します。

だからsystemdはあなたがそれを使うときに介入する方法がありませんmount

ちなみに、usingとsystemdの間に興味深い違いがあります。つまり、mountSystemd/etc/fstabはファイルを解析して使用されるインストール単位を生成します。これにより、mount必要な数より少ない数の引数を受け入れます。

systemdを使用する場合は、デバイスとマウントポイントを提供するだけですが、mountファイルシステム、オプションなど、より多くのオプションが必要です。

おすすめ記事