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