Mac下添加定時(shí)任務(wù)
- 編寫任務(wù)腳本
把要執(zhí)行的任務(wù)寫好
- 編寫任務(wù)描述文件
mac的任務(wù)描述文件是plist格式的暑认。結(jié)構(gòu)如下:
<?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>com.uniflor.notifier</string>
<!-- 要運(yùn)行的程序朱庆, 如果省略這個(gè)選項(xiàng)瓷蛙,會(huì)把ProgramArguments的第一個(gè)
元素作為要運(yùn)行的程序 -->
<key>Program</key>
<string>/Users/uniflor/script.sh</string>
<!-- 命令瘫拣, 第一個(gè)為命令损合,其它為參數(shù)-->
<key>ProgramArguments</key>
<array>
<string>/Users/uniflor/script.sh</string>
</array>
<!-- 運(yùn)行時(shí)間 -->
<key>StartCalendarInterval</key>
<dict>
<key>Minute</key>
<integer>30</integer>
<key>Hour</key>
<integer>9</integer>
<key>Day</key>
<integer>1</integer>
<key>Month</key>
<integer>5</integer>
<!-- 0和7都指星期天 -->
<key>Weekday</key>
<integer>0</integer>
</dict>
<!-- 運(yùn)行間隔卵蛉,與StartCalenderInterval使用其一,單位為秒 -->
<key>StartInterval</key>
<integer>30</integer>
<!-- 標(biāo)準(zhǔn)輸入文件 -->
<key>StandardInPath</key>
<string>/Users/uniflor/run-in.log</string>
<!-- 標(biāo)準(zhǔn)輸出文件 -->
<key>StandardOutPath</key>
<string>/Users/uniflor/Bin/run-out.log</string>
<!-- 標(biāo)準(zhǔn)錯(cuò)誤輸出文件 -->
<key>StandardErrorPath</key>
<string>/Users/uniflor/Bin/run-err.log</string>
</dict>
</plist>
-
兩種指定要執(zhí)行命令的方法:
-
使用Program和ProgramArguments
Program, 運(yùn)行命令或要執(zhí)行文件路徑
ProgramArguments, 執(zhí)行時(shí)傳入?yún)?shù) 只使用ProgramArguments
此時(shí)盹廷,ProgramArguments的每個(gè)參數(shù)為要執(zhí)行的命令或文件路徑征绸,其它參數(shù)為傳入?yún)?shù)
-
-
兩種設(shè)置執(zhí)行時(shí)間的方法:
-
StartCalendarInterval
使用元素Minute, Hour, Day, Month, Weekday兩指定執(zhí)行時(shí)間,如:<key>StartCalendarInterval</key> <dict> <key>Minute</key> <integer>30</integer> <key>Hour</key> <integer>9</integer> </dict>
每天的9:30執(zhí)行
StartInterval
設(shè)置執(zhí)行的時(shí)間間隔俄占,單位為秒
<key>StartInterval</key> <integer>3600</integer>
每小時(shí)執(zhí)行一次
-
使用launchctl加載plist
任務(wù)描述文件寫好后管怠,怎么使用它呢?可以使用launchctl工具缸榄,添加任務(wù)到launchd渤弛。
系統(tǒng)定義了幾個(gè)位置來存放任務(wù)列表
~/Library/LaunchAgents 由用戶自己定義的任務(wù)項(xiàng)
/Library/LaunchAgents 由管理員為用戶定義的任務(wù)項(xiàng)
/Library/LaunchDaemons 由管理員定義的守護(hù)進(jìn)程任務(wù)項(xiàng)
/System/Library/LaunchAgents 由Mac OS X為用戶定義的任務(wù)項(xiàng)
/System/Library/LaunchDaemons 由Mac OS X定義的守護(hù)進(jìn)程任務(wù)項(xiàng)
為用戶定義的任務(wù)項(xiàng),只以用戶登陸后才會(huì)執(zhí)行甚带,守護(hù)進(jìn)程任務(wù)項(xiàng)無(wú)論用戶是否登陸都會(huì)執(zhí)行
根據(jù)添加的任務(wù)類型她肯,把它拷貝到相應(yīng)的目錄,通過launchctl來加載:
建議添加到~/Library/LaunchAgents
添加 launchctl load ~/Library/LaunchAgents/com.test.plist
移除 launchctl unload ~/Library/LaunchAgents/com.test.plist
查看 launchctl list
最后這些如果你覺得麻煩欲低,下面推薦你一款好用的工具“l(fā)aunchcontrol”
可以新增編輯任務(wù)辕宏,右邊各種選項(xiàng)很方便。