我有一个 Go 程序,它应该作为守护进程运行,为用户提供最少的前端(只是系统托盘中的一个图标。)
它是用 Go 编写的这一事实并不重要,我遇到的主要问题是让二进制文件(已经运行)在 Mac 上启动时运行。
我可以将二进制文件设置为在启动时运行,如下所示:
cp daemon.plist ~/Library/LaunchAgents/daemon.plist
(cp将 plist 放入 LaunchAgents 目录)
launchctl load -w ~/Library/LaunchAgents/daemon.plist
(然后用 加载 plist launchctl。)
这很好用。唯一的问题是launchctl load 它启动了另一个已经在运行的二进制文件实例。我希望能够在启动时为正在运行的二进制文件启用(和禁用)运行二进制文件,而不启动它的另一个实例。
.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>daemon</string>
<key>ProgramArguments</key>
<array>
<string>/Applications/Daemon.app/Contents/MacOS/daemon</string>
</array>
<key>ProcessType</key>
<string>Interactive</string>
<key>RunAtLoad</key>
<true/>
<key>KeepAlive</key>
<false/>
</dict>
</plist>
一只斗牛犬
相关分类