システム トレイ GUI を使用して golangアプリを構築しています。ログインするたびにプログラムを実行したかっlaunchctl
たのですが、プログラムはエラーなしでコンパイルおよび実行されますが、launchctl
実行すると次のように表示されますService exited with abnormal code: 78
。権利と関係があるのかもしれません。
最初に、現在のユーザーの権限を
plist
ファイルとバイナリの両方に設定しようとしました。それでもエラー78
。plist
次に、ファイルとバイナリの権限をrootと runに変更しましたsudo launchctl
。まだエラーが表示されます78
。
/var/log/system.log
このエラーがあります:
14:46:00 Macchiato com.apple.xpc.launchd[1] (com.test.test[519]): Service could not initialize: 18A391: xpcproxy + 11291 [1534][8188841E-6D08-3F80-8488-9B5D7462BACB]: 0xd
14:46:00 Macchiato com.apple.xpc.launchd[1] (com.test.test[519]): Service exited with abnormal code: 78
14:46:00 Macchiato com.apple.xpc.launchd[1] (com.test.test): Service only ran for 0 seconds. Pushing respawn out by 10 seconds.
plist
ファイル自体は次のとおりです。
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
<key>Label</key>
<string>com.test.test</string>
<key>ProgramArguments</key>
<array>
<string>/Users/test-user/test/test</string>
</array>
<key>RunAtLoad</key>
<true/>
<key>ProcessType</key>
<string>Standard</string>
<key>KeepAlive</key>
<true/>
<key>StandardErrorPath</key>
<string>/var/log/test-err.log</string>
<key>StandardOutPath</key>
<string>/var/log/test-out.log</string>
</dict>
</plist>
エラー ログは空です。
バイナリを手動で実行すると、予想どおり、アプリのアイコンがシステム トレイに表示されます。
興味深い瞬間が 1 つあります。手動で と入力するlaunchctl load -w com.test.test.plist
と、アプリが正常に動作します。再起動までの時間です。再起動した後、エラーlaunchctl
がスローされ78
ます。
なぜこうなった?