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