我编写了两条udev
规则,这些规则在引入systemctl
之前一直运行良好。
这些规则在插入某种USB设备时运行守护程序,并在拔出同一设备时停止相同的守护程序。这是通过帮助脚本myscript
完成的。
使用systemctl
现在的问题是它显然会在设备插入几秒后杀死myscript
调用的守护进程。
规则如下:
SUBSYSTEM ==“usb”,ENV {DEVTYPE} ==“usb_device”, ENV {VID_PID} =“%s {idVendor}:%s {idProduct}”,ACTION ==“add”, RUN + =“/ etc / init.d / myscript plug%E {VID_PID}”`
SUBSYSTEM ==“usb”,ACTION ==“remove”,ENV {DEVTYPE} ==“usb_device”, ENV {VID_PID} = “%E {ID_VENDOR_ID}:%E {ID_MODEL_ID}”, RUN + =“/ etc / init.d / myscript unplug%E {VID_PID}”`
请注意myscript
接受两个参数:操作 plug 或 unplug 和设备标识符。
您是否知道如何解决问题或如何实施相同的问题 - 如果有必要 - 就systemctl
而言?
答案 0 :(得分:0)
如systemd.device
手册页所示,请为您的服务编写单元文件,然后使用"systemd"
标记设备,然后使用SYSTEMD_WANTS
属性启动设备。不要将RUN
属性用于长时间运行的进程。