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