MacOS launchctl 啟動程序控制

2021-10-22 15:18:25 字數 2083 閱讀 4588

macos不像 linux 有 /etc/init.d/rc.local 以及 service 的方式可以設定程式隨機啟動,而是使用 plist 檔案管理。你可以寫乙個plist檔案放到~/library/launch agents/下面,檔案裡描述你的程式路徑和啟動引數,那麼這個使用者登入時就會啟動這個程式了,而且是殺不了的哦,被殺了之後會自動重新啟動

plist檔案分布在:

/system/library/launchdaemons/ (system-wide daemons provided by os x)

其中 apache的httpd程式啟動配置檔案 org.apache.httpd.plist 就在這裡。

/system/library/launchagents/ (由mac os x為使用者定義的任務項)

/library/launchdaemons (由管理員定義的守護程序任務項 )

/library/launchagents (由管理員為使用者定義的任務項 )

如果放到/library/launch agents/下面的話,就是一開機就啟動哦~

~/library/launchagents ( 由使用者自己定義的任務項 )

這些配置檔案由程式launchctl設定是否載入。

launchctl 簡介

launchctl 管理 macos 的啟動指令碼,控制啟動計算機時需要開啟的服務。也可以設定定時執行特定任務的指令碼,就像linux cron一樣。

launchctl需要root許可權。

launchctl 常用命令

1.顯示當前的啟動指令碼

launchctl list

2.開機時自動啟動apache伺服器

3.設定開機啟動並立即啟動改服務

launchctl load -w **.pist

4. 設定開機啟動但不立即啟動服務

launchctl load **.pist

5. 停止正在執行的啟動指令碼

sudo launchctl unload [path/to/script]

6. 再加上-w選項即可去除開機啟動

sudo launchctl unload -w [path/to/script]

執行定時指令碼|設定開機啟動步驟

1.寫執行指令碼 (通過 brew 安裝軟體 brew 會為我們自動生成。)

2. 去對應的目錄下建立plist檔案

3. 載入服務

>1 cd 進入指定 plist 檔案目錄

>2 launchctl load *.plist #載入

launchctl unload *.plist #取消

>3 launchctl list #檢視服務

對服務設定別名方便操作

1. vim ~/.bash_profile #編輯新增如下指令碼 

2. 命名別名(以 nginx 為例)

>啟動:alias nginx.start=』launchctl load -w ~/library/launchagents/homebrew.mxcl.nginx.plist』

>關閉:alias nginx.stop=』launchctl unload -w ~/library/launchagents/homebrew.mxcl.nginx.plist』

>重啟:alias nginx.restart=』nginx.stop && nginx.start』

注意點

1. 在launchctl list 命令結果**現的 plist 檔案才會有效。

2. agents資料夾下的plist是需要使用者登入後,才會載入的,而daemons資料夾下得plist是只要開機,可以不用登入就會被載入

oracleDBConsoleorcl 啟動問題

oracle服務oracledbconsoleorcl啟動失敗解決方案 oracledbconsole服務不能啟動,訪問 http 機器名 1158 em 不能進入em介面,系統事件檢視器裡面記錄 agent process exited abnormally during initializati...

linux vsftpd server安裝啟停配置

vsftpd 的安裝 vsftpd 的伺服器的啟動和關閉 vsftpd 伺服器啟動和關閉是極容易的 我們可以直接把伺服器執行調到後台執行 這是幾 乎所有伺服器管理的執行方式 1 vsftpd 伺服器啟動和關閉的通用方法 執行 vsftpd 命令,要用到 root 許可權,如果您當前操作使用者並非是 ...

Oracle TNSListener不能啟動

在windows伺服器管理器中,手動啟動oracleorahome90tnslistener服務時發生錯誤,錯誤資訊為 不能啟動oracleorahome90tnslistener服務,錯誤3 系統找不到指定路徑。檢視服務屬性,發現 可執行檔案路徑 為空,原來是伺服器找不到可執行檔案的路徑。錯誤原因...