usbip 服务设置 PID 文件

usbip 服务设置 PID 文件

我的文件中有这个配置/lib/systemd/system/usbip.service,但我希望服务将 PID 文件写入/var/run/usbipd.pid

[Unit]
Description=usbip client
After=network.target

[Service]
Type=oneshot
RemainAfterExit=yes
ExecStart=/bin/sh -c "/usr/lib/linux-tools/$(uname -r)/usbip attach -r 10.10.10.90 -b $(/usr/lib/linux-tools/$(uname -r)/usbip list -r 10.10.10.90 | grep '0403:6001' | cut -d: -f1)"
ExecStop=/bin/sh -c "/usr/lib/linux-tools/$(uname -r)/usbip detach --port=$(/usr/lib/linux-tools/$(uname -r)/usbip port | grep '<Port in Use>' | sed -E 's/^Port ([0-9][0-9]).*/\1/')"

[Install]
WantedBy=multi-user.target

我找到了一篇包含此信息的文章:

-P FILE, --pid FILE: 将进程 ID 写入 FILE。
如果没有指定 FILE,则使用/var/run/usbipd.pid

我不知道将其放在usbip.service文件中的什么位置以及如何放置它。

答案1

sh你在你的台词中调用Exec*=,但传递了一堆你无法理解的bash主义sh

Exec*=如果您的语句仅引用bash脚本,并且您在脚本中完成所有操作,那么您的生活将会更简单。bash例如ExecStart=/opt/local/startup

相关内容