如何在 USB 断开连接时自动运行命令?

如何在 USB 断开连接时自动运行命令?

我正在从闪存驱动器运行 Ubuntu 12.04,并且处于这样一种情况:运行它的 USB 驱动器(以及其他 USB 设备)很容易断开连接(端口不稳定/弯曲)。当任何 USB 设备(包括运行它的驱动器)断开连接时,运行命令(在本例中是终止正在运行的服务器并发出警报的脚本)的最简单方法是什么?谢谢!

答案1

您必须制定 udev 规则。为此,您必须创建如下文件:

$ sudo vim /etc/udev/rules.d/.rules

名称可以是任何你想要的,只要以 .rules 结尾即可

现在,下面是编写规则的方法(这是我使用的规则):

ACTION=="add", ENV{ID_FS_UUID}=="E040-9945", RUN+="/bin/su adrien -c 'export DISPLAY=:0 && /usr/bin/gnome-screensaver-command -d'"
ACTION=="remove", ENV{ID_FS_UUID}=="E040-9945", RUN+="/bin/su adrien -c 'export DISPLAY=:0 && /usr/bin/gnome-screensaver-command -l'"

首先,您必须指定触发规则的条件。在这里,我使用操作和我的 USB 密钥的 UUID。然后我指定要运行的脚本(此脚本锁定/解锁我的屏幕)。(您可以根据需要输入任意数量的 RUN+=""。)

在你的情况下,不要输入 UUID 条件,而是输入类似 DRIVERS=="usb-storage" 的内容

要找出要检查的属性,请插入一个 USB 密钥,假设它进入 /dev/sdb 并运行:

$ udevadm info -a -p /sys/block/sdb | grep usb

相关内容