总线设备的 Systemd 单元

总线设备的 Systemd 单元

有没有办法在/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因此您不必对整个事情进行硬编码。

相关内容