MacOS不像 Linux 有 /etc/init.d/rc.local 以及 service 的方式可以設(shè)置程序隨機(jī)啟動(dòng),而是使用 plist 文件管理电抚。你可以寫一個(gè)plist文件放到~/Library/Launch Agents/下面惕稻,文件里描述你的程序路徑和啟動(dòng)參數(shù),那么這個(gè)用戶登錄時(shí)就會(huì)啟動(dòng)這個(gè)程序了蝙叛,而且是殺不了的哦俺祠,被殺了之后會(huì)自動(dòng)重新啟動(dòng)
plist文件分布在:
- /System/Library/LaunchDaemons/ (System-wide daemons provided by OS X)
其中 apache的httpd程序啟動(dòng)配置文件 org.apache.httpd.plist 就在這里。- /System/Library/LaunchAgents/ (由Mac OS X為用戶定義的任務(wù)項(xiàng))
- /Library/LaunchDaemons (由管理員定義的守護(hù)進(jìn)程任務(wù)項(xiàng) )
- /Library/LaunchAgents (由管理員為用戶定義的任務(wù)項(xiàng) )
如果放到/Library/Launch Agents/下面的話甥温,就是一開機(jī)就啟動(dòng)哦~- ~/Library/LaunchAgents ( 由用戶自己定義的任務(wù)項(xiàng) )
這些配置文件由程序 launchctl 設(shè)置是否加載锻煌。
launchctl 簡介
launchctl 管理 MacOS 的啟動(dòng)腳本妓布,控制啟動(dòng)計(jì)算機(jī)時(shí)需要開啟的服務(wù)姻蚓。也可以設(shè)置定時(shí)執(zhí)行特定任務(wù)的腳本,就像Linux cron一樣匣沼。
launchctl需要root權(quán)限狰挡。
launchctl 常用命令
1.顯示當(dāng)前的啟動(dòng)腳本
launchctl list
2.開機(jī)時(shí)自動(dòng)啟動(dòng)Apache服務(wù)器
sudo launchctl load -w /System/Library/LaunchDaemons/org.apache.httpd.plist
3.設(shè)置開機(jī)啟動(dòng)并立即啟動(dòng)改服務(wù)
launchctl load -w **.pist
4. 設(shè)置開機(jī)啟動(dòng)但不立即啟動(dòng)服務(wù)
launchctl load **.pist
5. 停止正在運(yùn)行的啟動(dòng)腳本
sudo launchctl unload [path/to/script]
6. 再加上-w選項(xiàng)即可去除開機(jī)啟動(dòng)
sudo launchctl unload -w [path/to/script]
執(zhí)行定時(shí)腳本|設(shè)置開機(jī)啟動(dòng)步驟
1.寫執(zhí)行腳本 (通過 brew 安裝軟件 brew 會(huì)為我們自動(dòng)生成。)
2. 去對(duì)應(yīng)的目錄下建立plist文件
3. 加載服務(wù)
>1 cd 進(jìn)入指定 plist 文件目錄
>2 launchctl load *.plist #加載
launchctl unload *.plist #取消
>3 launchctl list #查看服務(wù)
對(duì)服務(wù)設(shè)置別名方便操作
1. vim ~/.bash_profile #編輯添加如下腳本
2. 命名別名(以 nginx 為例)
>啟動(dòng):alias nginx.start=’launchctl load -w ~/Library/LaunchAgents/homebrew.mxcl.nginx.plist’
>關(guān)閉:alias nginx.stop=’launchctl unload -w ~/Library/LaunchAgents/homebrew.mxcl.nginx.plist’
>重啟:alias nginx.restart=’nginx.stop && nginx.start’
注意點(diǎn)
1. 在launchctl list 命令結(jié)果中出現(xiàn)的 plist 文件才會(huì)有效释涛。
2. Agents文件夾下的plist是需要用戶登錄后加叁,才會(huì)加載的,而Daemons文件夾下得plist是只要開機(jī)唇撬,可以不用登錄就會(huì)被加載