给定安装点(目录)名称,如何systemd
仅在该安装点上启动/停止自动安装程序?
我想要一个即使安装点也能工作的解决方案:
- 当前已安装
[^0-9A-Za-z]
路径名中有字符
答案1
IIRC 这是最近添加的,但听起来您可能想使用systemd-mount --umount WHERE
.确保 WHERE 在您选择的脚本语言中正确传递是您的问题:)。
或者您应该能够使用常规umount
命令。 systemd 使用内核事件或其他方式进行卸载,因此您不会在相应的.automount
单元上得到误导性的状态。
答案2
这是一个用 shell 表达的例子。
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")"