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