単一マウントポイントでシステム自動マウントを開始/停止

単一マウントポイントでシステム自動マウントを開始/停止

マウントポイント(ディレクトリ)名が与えられたら、そのマウントポイント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")"

関連情報