【发布时间】:2021-08-27 17:53:49
【问题描述】:
好的,所以我有这个命令可以关闭我的触摸屏。当我在 root shell 中执行它时它可以工作。
所以这行得通:
sudo su
/usr/bin/echo $(ls /sys/bus/hid/drivers/hid-multitouch | awk NR==1'{print $1}') > /sys/bus/hid/drivers/hid-multitouch/unbind
然后我的触摸屏停止工作,这是我想要的结果。
现在我想制作一个 touchscreen.service 文件以在每次启动时执行此操作。所以在服务文件中我包括:
ExecStart=/usr/bin/echo $(ls /sys/bus/hid/drivers/hid-multitouch | awk NR==1'{print $1}') > /sys/bus/hid/drivers/hid-multitouch/unbind
但是它不起作用>也没有抛出任何我能够捕捉到的错误。
我确实从之前对 .service 文件的修改中知道,我实际上可能需要使用 /usr/bin/sh -c,所以我也尝试过:
ExecStart=/usr/bin/sh -c "/usr/bin/echo $(ls /sys/bus/hid/drivers/hid-multitouch | awk NR==1'{print $1}') > /sys/bus/hid/drivers/hid-multitouch/unbind"
但这也不起作用..可能是因为awk NR==1'{print $1}'part?我也试过用awk NR==1'\''{print $1}'\''替换它,但它再次失败了。
有没有人知道如何让在我的根 cli 环境中运行的命令也可以作为 systemd 服务运行?
【问题讨论】:
标签: service command-line-interface sh systemd