只要插入 USB,我就需要运行 Python 或 shell 脚本。
所以我需要为此创建一个 udev 规则。
您可以添加一个udev规则文件。例如,您可以添加文件 /etc/udev/rules.d/99-local.rules:
内容可以是:
KERNEL=="sd*", SUBSYSTEMS=="block", ACTION=="add", RUN+="/bin/systemctl start usb-mount@%k.service"
KERNEL=="sd*", SUBSYSTEMS=="block", ACTION=="remove", RUN+="/bin/systemctl stop usb-mount@%k.service"
前面是systemctl
启动和停止systemd
服务[email protected]的udev规则文件。 通过此服务文件,您可以启动所需的 Python 或 Bash 脚本。
服务文件的内容示例如下:
[Unit]
Description=Mount USB Drive on %i
[Service]
Type=oneshot
RemainAfterExit=true
ExecStart=/usr/bin/usb-mount.sh add %i
ExecStop=/usr/bin/usb-mount.sh remove %i
在单元文件中,您可以找到启动 Bash 脚本 /usr/bin/usb-mount.sh 的选项 ExecStart 和 ExecStop。 该脚本接受两个参数:
add
| remove
sda
、sdb
、sdb1
等)。所以 usb-mount.sh 在您插入(
ACTION==add
在 udev 规则中)或移除(ACTION==remove
在 udev 规则中)USB 存储设备时被调用。