有没有办法在/sys/bus
路径可用时运行 systemd 单元?我正在尝试在嵌入式设备上自动执行以下命令:
echo "on" > /sys/bus/usb/devices/usb1/power/control
但是我收到了一个错误;通过查看日志,输出是:
can't create /sys/bus/usb/devices/usb1/power/control: nonexistent directory
我还尝试搜索现有的 USB 单元,但如果我运行 则不会出现该类型设备的任何内容systemctl --all --full -t device
。
答案1
您正在寻找的服务称为udev
。该服务接收有关设备更改的内核事件,并具有一个规则引擎,可以让您在某个事件的某些条件成立时执行操作,请参阅精美的手册。
你应该可以在/etc/udev/
目录中找到一些示例。你可能正在寻找以
SUBSYSTEM=="usb", ACTION=="add"
你可能想以类似的方式结束
RUN+="echo "on" > /sys/bus/usb/devices/usb1/power/control"
您可以使用一些变量,RUN
因此您不必对整个事情进行硬编码。