每当插入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"
前一个是udev规则文件,用于启动和停止systemd服务usb-mount@.service通过CCD_ 1。通过这个服务文件,您可以启动所需的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。脚本接受两个参数:
add
|remove
- USB设备文件的名称(
sda
、sdb
、sdb1
等(
因此,当插入(udev规则中的ACTION==add
(或移除(udev法则中的ACTION==remove
(usb存储设备时,会调用usb mount.sh。