問題タブ [launch-daemon]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
macos - macOS でのグローバルな LaunchAgent の実装
複数のユーザー間で動作するグローバルな起動エージェントを実装しようとしていますが、ゴールまでたどり着けません。単一のユーザーに対しては完全に機能していますが、別のユーザーに切り替えると、起動エージェントが失敗しexit code 78 - function not implemented
、エラーから何も理解できません。以下は私のplistです
に起動エージェントを配置し、/Library/LaunchAgents/com.my.company.agent.plist
実行するとls -al /Library/LaunchAgents/com.my.company.agent.plist
、
-rw-r--r-- 1 root wheel 752 Jan 21 13:27 /Library/LaunchAgents/com.my.company.agent.plist
/Library/LaunchAgents の権限はdrwxr-xr-x 8 root wheel 256 Jan 21 13:32 /Library/LaunchAgents
このコマンドを使用してエージェントをロードしています/bin/launchctl load /Library/LaunchAgents/com.my.company.agent.plist
を実行するls -al /Applications/MyApp.app/Contents/Resources/runscript.sh
と、 が得られ-rwxr-xr-x 1 root wheel 227 Jan 21 13:28 /Applications/MyApp.app/Contents/Resources/runscript.sh
ます。
runscript.sh の内容は
他のstackoverlfowの推奨事項によると、構成全体は問題ないようで、起動エージェントは最初のユーザーでうまく機能しますが、2番目のユーザーからロードしようとするとすぐに78の終了コードで失敗します。
macos - DriverKit ユーザー クライアントをデーモンで開くことはできますか?
Driver Kit で仮想 HID デバイスを構築しています。
デーモンは、ドライバーから送信される HID イベントを生成するために必要であるため、デーモンから仮想デバイスドライバーと通信したいと考えていました。
デーモンを介してドライバー サービスを正常に照合していますが、サービスを開こうとすると、ここに表示されている内容-536870174
から.kIOReturnNotPermitted
これについて私が読んだことによると、デバイス ドライバー ユーザー クライアントはcom.apple.developer.driverkit.userclient-access
、Apple によって権利が付与されたアプリケーションを介してのみ開くことができます。
だから、私の質問:
デーモンを使用して Driver Kit のデバイス ドライバーのユーザー クライアントを開くことは完全に問題外ですか?
com.apple.developer.driverkit.userclient-access
ここで、デーモンとドライバーの間のブローカーとして機能できる資格を持つ中間アプリケーションを使用する唯一のオプションはありますか?
したがって、次のようになります。
デーモン<---xpc 接続--> 中間アプリ <--- ユーザー クライアント --->仮想 HID デバイス
編集:アプリをデーモンとして実行することに関する以下のフィルの回答に追加するには、Appleが書いたガイダンスがここにあります。