启动时的 udev 规则

启动时的 udev 规则

我有一个 udev 规则,当插入 USB 设备(任何设备)时执行一个简单的命令。

规则是:

ACTION=="add", SUBSYSTEM=="usb", RUN+="/bin/sh -c 'xhost +local:pi; sudo -u pi xscreensaver-command -lock'"

它工作得很好,当我将东西插入任何 USB 端口时,屏幕就会被遮挡。

但是当我已经插入设备并启动时,这不起作用。我希望在屏幕已经锁定的情况下启动。

我该怎么做才能在启动时执行此规则? 有可能吗?

答案1

X 服务器启动较晚,因此您的脚本在启动之前就白跑了。创建一个 python 脚本作为守护进程来监视使用的设备可能是值得的pyudev

答案2

这是我为 Sharkforce 鼠标使用的 Python 脚本...应该很容易在您的场景中采用它...有关更多信息,请参阅:https://pyudev.readthedocs.io/en/v0.13/api/index.html

#!/usr/bin/env python3
from pyudev import Context
import os
context = Context()
for device in context.list_devices(subsystem='input', ID_INPUT_MOUSE=True):
    if device.sys_name.startswith('event'):
        name = device.parent['NAME']
        #print(name)
        test = name.find('SHARKFORCE')
        if test != -1:
            os.system('synclient TouchpadOff=1')

相关内容