其中的關鍵字解釋:
1)Label(必選)
該項服務的名稱。
2)Program(ProgramArgument是必選的,在沒有ProgramArgument的情況下,必須要包含Program關鍵字)
指定可執行文件的路徑和名稱。
3)RunAtLoad(可選)
標識launchd在加載完該項服務之后立即啟動路徑指定的可執行文件。默認值為false。設置為true即可實現開機運行腳本文件。
4)WorkingDirectory(可選)
運行可執行文件之前,指定當前工作目錄的路徑。
5)KeepAlive(可選)
這個關鍵字可以用來控制是否讓可執行文件持續運行,默認值為false,也就是說滿足具體條件之后才啟動。當設置值為ture時,表明無條件的開啟可執行文件,并使之保持在整個系統運行周期內。
6)StartCalendarInterval(可選)
該關鍵字可以用來設置定時執行可執行程序,可使用Month、Day、Hour、Minute等子關鍵字,它可以指定腳本在多少月、天、小時、分鐘、星期幾等時間上執行,若缺少某個關鍵字則表示任意該時間點,類似于Unix的Crontab計劃任務的設置方式,比如在該例子中設置為每天11點鐘執行腳本文件。
所有key關鍵字詳細使用說明可以在Mac OS X終端下使用命令man launchd.plist查詢。
•在客戶機部署配置文件和腳本文件
1) 首先為Mac OS X系統的當前的用戶設置一個密碼,在系統偏好設置→賬戶中設置。
然后,可通過共享等方式將腳本文件ae_scan_mac.sh和plist文件ae_scan_mac.plist拷貝到本地硬盤的一個臨時目錄中,然后打開實用工具→終端,使用以下命令:
sudo mv ae_scan_mac.* /Library/LaunchDaemons
將這兩個文件移動到/Library/LaunchDaemons/目錄下。
2) 修改文件權限:
sudo chown root:wheel /Library/LaunchDaemons/ae_scan_mac.*
sudo chmod a+x /Library/LaunchDaemons/ae_scan_mac.sh
sudo chmod 644 /Library/LaunchDaemons/ae_scan_mac.plist
3) plist文件的編輯和檢查
可使用命令sudo vim ae_scan_mac.plist對文件進行修改。
檢查plist文件的語法:
plutil ae_scan_mac.plist
若返回OK則表示文件語法正確。
4) 啟動服務并載入plsit文件:
sudo launchctl load /Library/LaunchDaemons/ae_scan_mac.plist
或者重啟Mac電腦也可以。
要留意的是,每次修改完plist文件后必須使用以下命令重新載入plist文件又或者重啟電腦,plist的配置才會生效。
sudo launchctl unload /Library/LaunchDaemons/ae_scan_mac.plist
sudo launchctl load /Library/LaunchDaemons/ae_scan_mac.plist
接著,檢查服務的運行狀態:
sudo launchctl list
5) 最后待腳本運行后,就能在AssetExplorer服務器上看到這臺客戶機的信息了,之后客戶機就會自動按照plist文件設置的時間或者重啟機器后將機器信息上傳到服務器。
兩個文件的部署有幾個地方需要注意的:
1)文件的權限必須正確,兩個文件所有者必須為root,腳本文件必須有執行權限。
2)plist文件的語法必須正確,要留意配置中的程序工作目錄和運行參數不要錯??蓤绦校簊udo launchctl start /Library/LaunchDaemons/ae_scan_mac.plist
強制運行服務,或者直接運行一下腳本程序,測試一下腳本文件的運行是否正常。
3)每次plist文件修改后必須執行launchctl unload/load卸載并重新載入plist文件,才能使新的配置文件馬上生效。
腳本程序和配置文件分別在多臺客戶機一次性部署后,AssetExplorer就可以自動收集到所有Mac電腦的硬件和軟件信息,即使機器配置更改了也無需手動添加,方便了公司的資產管理。Launchd進程的功能比較強大,Apple推薦并已使用該進程替代傳統的cron了,大家有興趣可以再研究一下。
原文為博主所著,并刊登于《網絡運維與管理》雜志2014.02.3.4期。
新聞熱點
疑難解答