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

모든 것이 괜찮습니다.

이것은 내 시스템 .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를 실행할 수 없거나 lockd와 관련된 항목을 사용할 수 없습니다.

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

OS 제한이 있고 16.04를 사용해야 했기 때문에 이것을 강제로 컴파일해야 했으며 저장소에서 사용할 수 있는 것보다 새로운 usbmuxd 버전이 필요했습니다.

내 시스템 버전은 229입니다.

관련 정보