我使用的是 Ubuntu 18.04,每次插入新的 USB 设备时都需要运行 Bash 脚本(与设备类型相互依赖)。
PS:我发现其他答案能够适用于指定的 USB 设备,但我需要适用于任何可能的 USB 设备。
小智 6
从 udev 规则启动 systemd .service
udev monitor允许您监视内核 uevent 并将 devpath 打印到控制台,然后可以使用它来udevadm info -a --path=''打印链上所有设备的所有 sysfs 属性。
udevadm monitor --environment --udev允许您在规则处理后监视 udev 事件设置的环境变量。
$ cat /etc/udev/rules.d/99-usb-autorun.rules
Run Code Online (Sandbox Code Playgroud)
# Start USB autorun systemd .service
ENV{DEVTYPE}=="usb_device", \
TAG+="systemd", ENV{SYSTEMD_WANTS}="usb_autorun.service"
Run Code Online (Sandbox Code Playgroud)
(不要忘记重新加载您的规则udevadm control --reload && udevadm trigger)。
...和/etc/systemd/system/usb_autorun.service:
[Unit]
Description=USB Autorun.
[Service]
Type=oneshot
ExecStart=/opt/bin/usb_autorun.sh
Run Code Online (Sandbox Code Playgroud)