단일 마운트 지점에서 시스템 자동 마운트 시작/중지

단일 마운트 지점에서 시스템 자동 마운트 시작/중지

마운트 지점(디렉토리) 이름이 주어지면 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")"

관련 정보