停止/マウント解除時にマウントデバイスを削除すると自動的にマウントポイントを作成

停止/マウント解除時にマウントデバイスを削除すると自動的にマウントポイントを作成

systemd私は自動的に作成されたマウントポイントも自動的に削除されるという誤った仮定の下で作業していました。マウントポイントがまだ存在しない場合は、マウントデバイスのマウントポイントを作成する方法を学び、デバイスがマウントされる前とマウント解除された後にマウントポイントが作成され削除されるsystemdmacOSのように動作することがわかりました。/Volumes

私のLinux設定の1つは、マウントデバイスを介して設定されているか、特定の瞬間fstabにどちらがより良く見えるかに応じてtmpfsをにマウントします/mnt。これは私と同じです/Volumes。マイマウントは/mnt/<mount point name>それぞれのマウントポイントとして機能します。/dev/cdromにマウントするのがその例です。 (サイドリクエスト:誰かがマウントなどのツールを使って/mnt/cdromルートではなくマウントを実行する方法を教えてくれたらいいでしょう。)udisksctl/mnt

マウントされたデバイスが「停止」したときに独自のマウントポイントを呼び出す各マウントされたデバイスファイルに追加できるディレクティブ形式でソリューションを見つけようとしましたが、rmdirコンテンツを見つけた検索結果には明確な内容はありません。ExecStop設置ユニットを認識できませんsystemctl

systemdこのような状況で開発者のための特別なソリューションがあることを願っています。

答え1

これを行うための組み込み方法はわかりませんが、サービステンプレートファイルを使用して実行できます。

# /etc/systemd/system/[email protected]
[Unit]
Description=Remove mount point when stopped
Before=%i.mount
PartOf=%i.mount

[Service]
Type=oneshot
RemainAfterExit=true
ExecStop=rmdir %f

[Unit]その後、デバイスがインストールされているセクションに次の行を追加できます。

Wants=cleanup-mount-point@%N.service

そのうち、%Nマウントユニットの名前は上記の%iサービステンプレートの名前になります。

または、冒険を楽しみたい場合は、付属のファイルを使用してインストールされているすべてのデバイスに適用できます。

# /etc/systemd/system/mount.d/10-cleanup-mount-points.conf
[Unit]
Wants=cleanup-mount-point@%i.service

関連情報