マウントポイント(ディレクトリ)名が与えられたら、そのマウントポイントsystemd
でのみサイレントインストーラを起動/停止するにはどうすればよいですか。
マウントポイントでも動作するソリューションが欲しいです。
- 現在インストールされている
[^0-9A-Za-z]
パス名に文字があります。
答え1
IIRCは最近追加されましたが、使用したい場合がありますsystemd-mount --umount WHERE
。選択したスクリプト言語で WHERE が正しく渡されることを確認するのは問題です。
または、通常のコマンドを使用できる必要がありますumount
。 systemdはアンロードにカーネルイベントやその他の手段を使用するため、そのユニット.automount
で誤った状態を取得できません。
答え2
シェルで表現した例だ。
MOUNT="/media/backup"
MOUNT_UNIT="$(systemctl show --property=Id "$MOUNT" | sed -e s/^[^=]*=// )"
AUTOMOUNT_UNIT="$(echo "$MOUNT_UNIT" | sed -e s/[.]mount$/.automount/)"
systemctl stop "$AUTOMOUNT_UNIT"
この質問に完全に答えるには、systemd-escape
次のように生成された単位名を使用できます。リンクされた質問に答えてください。
答え3
ありがとうこの回答:
#!/bin/bash
if [ $# -ne 1 ]; then
{
printf "Stop systemd automount at <mountpoint>\n" "${0##*/}"
printf "Usage: %s <mountpoint>\n" "${0##*/}"
} >&2
exit 1
fi
MOUNT=$1
sudo systemctl stop "$(systemd-escape -p --suffix=automount "$MOUNT")"