我需要运行一个Python或一个shell脚本,每当USB插入。所以我需要为此创建一个udev规则。
xa9qqrwz1#
您可以添加 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"
前一个是udev规则文件,它通过systemctl启动和停止systemd服务 usb-mount@.service。通过这个服务文件,您可以启动所需的Python或Bash脚本。服务文件的内容示例如下:
systemctl
[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/ www.example.com * 的选项 ExecStart 和 ExecStopusb-mount.sh。该脚本接受两个参数:
add
remove
sda
sdb
sdb1
ACTION==add
ACTION==remove
1条答案
按热度按时间xa9qqrwz1#
您可以添加 udev 规则文件。例如,您可以添加文件 /etc/udev/rules.d/99-local.rules:
其内容可以是:
前一个是udev规则文件,它通过
systemctl
启动和停止systemd服务 usb-mount@.service。通过这个服务文件,您可以启动所需的Python或Bash脚本。服务文件的内容示例如下:
在单元文件中,您可以找到启动Bash脚本 */usr/bin/ www.example.com * 的选项 ExecStart 和 ExecStopusb-mount.sh。该脚本接受两个参数:
add
|remove
sda
、sdb
、sdb1
等)。因此,当您插入(udev规则中的
ACTION==add
)或删除(udev规则中的ACTION==remove
)USB存储设备时,会调用 usb-mount.sh。