无法使用 systemd 将 usbmuxd 作为服务运行,但通过终端执行时可以正常运行

无法使用 systemd 将 usbmuxd 作为服务运行,但通过终端执行时可以正常运行

我正在尝试将 usbmuxd 设置为守护进程运行,但是我不断遇到以下错误:

    Dec  3 10:29:19 asci-kubu-NUC7i3BNH systemd[1]: asci-usbmuxd.service: Main process exited, code=exited, status=1/FAILURE
Dec  3 10:29:19 asci-kubu-NUC7i3BNH systemd[1]: asci-usbmuxd.service: Failed with result 'exit-code'.
Dec  3 10:29:24 asci-kubu-NUC7i3BNH systemd[1]: asci-usbmuxd.service: Service hold-off time over, scheduling restart.
Dec  3 10:29:24 asci-kubu-NUC7i3BNH systemd[1]: asci-usbmuxd.service: Scheduled restart job, restart counter is at 46078.
Dec  3 10:29:24 asci-kubu-NUC7i3BNH systemd[1]: Stopped usbmuxd service.
Dec  3 10:29:24 asci-kubu-NUC7i3BNH systemd[1]: Started usbmuxd service.
Dec  3 10:29:24 asci-kubu-NUC7i3BNH usbmuxd[29950]: [0] Could not open lockfile

当我像这样手动运行它时:

sudo usbmuxd -v --user usbmux --foreground

一切安好。

这是我的 systemd .service 文件。我已通读手册,但我确信我可能没有设置正确的容量。我已经验证了 usbmux 用户的权限/组,usbmux 是plugdev 和 sudo 的一部分。

[Unit]
Description=usbmuxd service
Documentation=man:usbmuxd(8)

[Service]
Type=simple
ExecStart=/usr/local/sbin/usbmuxd --user usbmux --systemd
PIDFile=/var/run/usbmuxd.pid
Restart=always
CapabilityBoundingSet=CAP_NET_ADMIN CAP_NET_BIND_SERVICE
LimitNPROC=1

StandardOutput=syslog
StandardError=syslog
SyslogIdentifier=asciusbmuxd

[Install]
WantedBy=multi-user.target

任何帮助将不胜感激,我已尽最大努力寻找解决方案。谢谢!

更新

使用 usbmuxd 附带的单元文件不起作用,并在尝试在 ExecStart 中传递命令参数时出现上面提到的相同错误。

捆绑的单元文件:

[Unit]
Description=Socket daemon for the usbmux protocol used by Apple devices
Documentation=man:usbmuxd(8)

[Service]
ExecStart=@sbindir@/usbmuxd --user usbmux --systemd
PIDFile=@localstatedir@/run/usbmuxd.pid

编译时,@sbindir@映射到/usr/local/sbin/usbmuxd@localstatedir@ 到 /usr/local/var/run/usbmuxd.pid这是不存在的。我将其更正为/var/run/usbmuxd.pid

无论是我的单元文件,还是删除的捆绑文件,--user usbmux --systemd 都允许它正确运行。

尝试通过单元文件而不是通过 ExecStart 设置 usbmux 也会失败。

系统日志告诉我以下内容:

Oct  4 10:52:19 potato asciusbmuxd[17327]: [10:52:19.635][0] Failed to drop privileges (cannot set supplementary groups)

当我删除 User 引用时,服务正确启动,但我无法执行 ideviceinfo 或使用与 lockd 相关的任何内容:

usbmuxd[17462]: [2] chmod(/var/lib/lockdown, 02775) failed: Operation not permitted

我应该注意,我被迫编译它,因为我有操作系统限制并且必须使用 16.04,我需要一个比存储库中可用的更新的 usbmuxd 版本。

我的systemd版本是229。

相关内容