0

我正在尝试将 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)

当我删除用户参考时,服务会正确启动,但我得到了,并且我无法执行 ideviceinfo 或使用与 lockdd 相关的任何内容:

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

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

我的 systemd 版本是 229。

4

1 回答 1

0

最后一条错误信息:

Dec  3 10:29:24 asci-kubu-NUC7i3BNH usbmuxd[29950]: [0] Could not open lockfile

似乎表明该服务在打开锁定文件时出现问题。锁定文件位于/var/run/usbmuxd.pid. 您的服务是否有权编辑该文件?

您似乎正在滚动您自己的 systemd 服务文件。为什么不使用 usbmuxd 附带的那个?

于 2018-12-18T09:42:59.927 回答