插入或拔出USB设备后自动运行脚本

在挂载/插件或卸载/拔出USB设备后,如何自动运行脚本?

感谢MinimusHeximus以及他在对我的类似问题的评论中提到的主题的各自贡献者,我想我现在可以为您提供以下答案。

对于这样的USB设备,您需要5(5)个文件,如下所示,只需填写相应的值

/etc/udev/rules.d/00-usb-.rules

 ACTION=="add", ATTRS{idVendor}=="", ATTRS{idProduct}=="", ENV{XAUTHORITY}="/home//.Xauthority", ENV{DISPLAY}=":0", OWNER="", RUN+="/usr/local/bin/usb--in_udev" ACTION=="remove", ATTRS{idVendor}=="", ATTRS{idProduct}=="", ENV{XAUTHORITY}="/home//.Xauthority", ENV{DISPLAY}=":0", OWNER="", RUN+="/usr/local/bin/usb--out_udev" 

/usr/local/bin/usb--in_udev

 #!/bin/bash /usr/local/bin/usb--in & 

/usr/local/bin/usb--in

 #!/bin/bash sleep 1  

/usr/local/bin/usb--out_udev

 #!/bin/bash /usr/local/bin/usb--out & 

/usr/local/bin/usb--out

 #!/bin/bash sleep 1  

笔记:

  1. 您可以通过在终端中输入命令lsusb来捕获值 – 当您的USB设备插入时 – 它将列出当前可用的所有USB设备,如Bus 003 Device 002: ID 8087:07da Intel Corp. ,其中8087VendorID07daProductID
  2. 可以是您为USB设备选择的任意名称,例如,在为USB键盘创建此类文件时,我选择使用通用名称“ keyboard ”,这需要在插入时应用不同的键盘布局。
  3. 在某些情况下,当您不需要执行任何操作时,可能没有必要在udev规则文件中使用ACTION=="remove"行,从而使用相关的2(两个)“ out ”文件(例如,反向)插入设备后插入设备时所做的更改。

文件管理器SpaceFM允许这样做。 请参阅自动运行设置,例如自动运行| 在挂载自动运行| 在卸载