我写了两条 udev
规则,直到引入 systemctl
才行 .
无论何时插入某种USB设备,这些规则都会运行守护程序,并在拔出同一设备时停止相同的守护程序 . 这是通过帮助脚本 myscript
完成的 .
使用 systemctl
时,现在的问题是它显然会在设备插入几秒后杀死由 myscript
调用的守护进程 .
规则如下:
-
SUBSYSTEM ==“usb”,ENV ==“usb_device”,ENV =“%s :%s ”,ACTION ==“add”,RUN =“/ etc / init.d / myscript plug%E “`
-
SUBSYSTEM ==“usb”,ACTION ==“remove”,ENV ==“usb_device”,ENV =“%E :%E ”,RUN =“/ etc / init.d / myscript unplug%E “`
请注意, myscript
接受两个参数:操作插头或拔出插头以及设备标识符 .
你知道如何解决问题或如何实现相同的 - 如果有必要的话 - systemctl
?
1 回答
正如
systemd.device
手册页所述,为您的服务编写一个单元文件,然后使用"systemd"
标记该设备,然后使用SYSTEMD_WANTS
属性启动该单元 . 不要将RUN
属性用于长时间运行的进程 .