Mac設置開機啓動

Mac設置開機啓動

本文針對命令行使用的開發工具或自己編寫的腳本設置開機啓動,圖形化界面的程序僅需要設置->用戶與羣組->登錄項中即可配置。

相比於Linux開機啓動設置的簡單方便--配置rc.local文件即可,mac設置開機啓動略顯麻煩。

如果是使用homebrew安裝軟件自然不用考慮開機啓動這回事,但有時候想執行自己的腳本或者有特殊需求,就不得不自己處理開機啓動了。

1. 使用登錄項添加可執行腳本(推薦)

在用戶的家目錄編寫一個sh腳本,例如:

test.sh

#!/bin/bash

# 在用戶的家目錄創建一個文件
touch ~/haha.txt

添加可執行權限

chmod 755 test.sh

進入設置->用戶與羣組->登錄項,點+號,選擇test.sh文件即可。

重啓電腦,驗證是否新建了文件,如存在說明配置成功,修改該文件內容爲你想要的配置。

該文件將會在開機時執行,可在命令行中執行的開機啓動項均可在此文件中配置。

PS: 開機後會顯示一個“進程已結束”的終端,不太爽,需要進入終端的偏好設置->shell選項卡->當shell退出時, 選擇“關閉窗口”。這樣開機時就不會出現一個終端了

2. launchctl加載plist文件

macOS開機啓動一般使用launchctl加載plist文件

plist文件放置處:

~/Library/LaunchAgents 由用戶自己定義的任務項
/Library/LaunchAgents 由管理員爲用戶定義的任務項
/Library/LaunchDaemons 由管理員定義的守護進程任務項
/System/Library/LaunchAgents 由Mac OS X爲用戶定義的任務項
/System/Library/LaunchDaemons 由Mac OS X定義的守護進程任務項

建議放在 ~/Library/LaunchAgents 下面。

下面再來理解幾個基礎概念:

/System/Library和/Library和~/Library目錄的區別?

/System/Library目錄是存放Apple自己開發的軟件。
/Library目錄是系統管理員存放的第三方軟件。
~/Library/是用戶自己存放的第三方軟件。

LaunchDaemons和LaunchAgents的區別?

LaunchDaemons是用戶未登陸前就啓動的服務(守護進程)。
LaunchAgents是用戶登陸後啓動的服務(守護進程)。

plist文件示例

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC -//Apple Computer//DTD PLIST 1.0//EN
http://www.apple.com/DTDs/PropertyList-1.0.dtd >
<plist version="1.0">
<dict>
    <key>Label</key>
    <string>com.example.exampled</string>
    <key>ProgramArguments</key>
    <array>
         <string>exampled</string>
    </array>
    <key>KeepAlive</key>
    <true/>
    <key>RunAtLoad</key>
    <true/>
</dict>
</plist>

launchd.plist的部分鍵值說明,完整版見launchd.plist(5)

Label (必須)

該項服務的名稱

ProgramArguments

指定可執行文件路徑及其參數,比如執行ls -a,對應到該配置中,應該寫作:

<key>ProgramArguments</key>
<array>
     <string>ls</string>         
     <string>-a</string>
</array>

RunAtLoad (可選)

標識launchd在加載完該項服務之後立即啓動路徑指定的可執行文件。默認值爲 false,設置爲 true 即可實現開機運行腳本文件。

StartCalendarInterval (可選)

該關鍵字可以用來設置定時執行可執行程序,可使用 Month, Day, Hour, Minute, Second等子關鍵字,它可以指定腳本在多少月,天,小時,分鐘,秒,星期幾等時間上執行,若缺少某個關鍵字則表示任意該時間點,類似於 Unix 的 Crontab 計劃任務的設置方式,比如在該例子中設置爲每小時的20分的時候執行該命令。

KeepAlive(可選)

是否保持持續運行

所有key關鍵字詳細使用說明可以在Mac OS X終端下使用命令 man launchd.plist 查詢

檢查plist語法是否正確

plutil ~/Library/LaunchAgents/example.plist

載入配置, 使配置生效

launchctl load ~/Library/LaunchAgents/example.plist

卸載配置

launchctl unload ~/Library/LaunchAgents/example.plist

查看服務運行狀態

launchctl list
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章