在单个挂载点上启动/停止 systemd 自动挂载

在单个挂载点上启动/停止 systemd 自动挂载

给定安装点(目录)名称,如何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")"

相关内容