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です。

関連情報