亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

如何將已經運行的二進制文件設置為在啟動時運行

如何將已經運行的二進制文件設置為在啟動時運行

Go
炎炎設計 2023-06-19 17:49:21
我有一個 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>
查看完整描述

1 回答

?
一只斗牛犬

TA貢獻1784條經驗 獲得超2個贊

我想到了。


所以首先,二進制文件正在運行。它開始時未啟用在啟動時運行。要初始化,您cp需要plist進入~/Library/LaunchAgents/目錄:


cp daemon.plist ~/Library/LaunchAgents/daemon.plist

看起來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>

    <false/>

    <key>KeepAlive</key>

    <false/>

</dict>

</plist>

注意:RunAtLoad鍵設置為false。


然后我們將其加載到launchctl:


launchctl load -w ~/Library/LaunchAgents/daemon.plist

它不應加載,因為RunAtLoad設置為false.


然后,我們可以像這樣在啟動時啟用和禁用運行:

啟用:

  • 設為RunAtLoad_true

  • cp結束plist_

禁用:

  • 設為RunAtLoad_false

  • cp結束plist_

有點hacky,但它有效。


查看完整回答
反對 回復 2023-06-19
  • 1 回答
  • 0 關注
  • 202 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號