Mac 開機自啟動配置設定方法(定時任務解決方案)

2022-08-24 12:12:13 字數 2036 閱讀 3817

在linux下執行定期任務可以使用crontab,目前mac os也可以使用它,不過已不推薦使用。推薦做法是採用plist指令碼,plist指令碼可以設定執行的動作,時間間隔等其他一些資訊。另外crontab的最小時間間隔是一分鐘,使用plist指令碼原則上時間間隔可以為一秒。

plist指令碼存放路徑為/library/launchdaemons或/library/launchagents,其區別是後乙個路徑的指令碼當使用者登陸系統後才會被執行,前乙個只要系統啟動了,哪怕使用者不登陸系統也會被執行。可以通過兩種方式來設定指令碼的執行時間。乙個是使用startinterval,它指定指令碼每間隔多長時間(單位:秒)執行一次;另外乙個使用startcalendarinterval,它可以指定指令碼在多少分鐘、小時、天、星期幾、月時間上執行,類似如crontab的中的設定。

乙個簡單例子如下:

1

<?

xml version="1.0" encoding="utf-8"

?>

2>

3<

plist

version

="1.0"

>

4<

dict

>

5<

key>label

key>

6<

string

>com.yangyz.cron.test.plist

string

>

7<

key>programarguments

key>

8<

array

>

9<

string

>/users/yangyz/plist-test.sh

string

>

10array

>

11<

key>keepalive

key>

12<

false

/>

13<

key>runatload

key>

14<

true

/>

15<

key>startinterval

key>

16<

integer

>60

integer

>

17dict

>

18plist

>

其中key是plist指令碼定義的屬性,緊跟著的下一行是該屬性對應的值。上述指令碼是每間隔60秒執行一次/users/yangyz/plist-test.sh這個shell指令碼,也可以使用startcalendarinterval來替換startinterval達到同樣的效果,例如:

<

key>startcalendarinterval

key>

<

dict

>

<

key>minute

key>

<

integer

>0

integer

>

dict

>

上述設定的意思為每天的每個小時的第0分鐘執行,也即使每60秒執行一次。

#停止指令碼com.yangyz.cron.test.plist執行

launchctl unload /library/launchdaemons/com.yangyz.cron.test.plist

#啟動指令碼com.yangyz.cron.test.plist執行

launchctl load /library/launchdaemons/com.yangyz.cron.test.plist

如果執行上面命令看到launchctl: dubious ownership on file (skipping): /library/launchdaemons/com.yangyz.cron.test.plist這樣的錯誤,其原因是該指令碼的owner和當前執行操作使用者不一致。使用chown修改一下即可。

參考資料:

Mac 開機自啟動配置設定方法(定時任務解決方案)

在linux下執行定期任務可以使用crontab,目前mac os也可以使用它,不過已不推薦使用。推薦做法是採用plist指令碼,plist指令碼可以設定執行的動作,時間間隔等其他一些資訊。另外crontab的最小時間間隔是一分鐘,使用plist指令碼原則上時間間隔可以為一秒。plist指令碼存放路...

mac 設定mysql開機自啟動

mac 設定mysql開機自啟動 1 編輯乙個mysql啟動檔案。在終端裡面輸入 sudo vi library launchdaemons com.mysql.mysql.plist 2 輸入啟動檔案內容 複製 keepalive label com.mysql.mysqld programarg...

設定OVS開機自啟動的方法

以openvswitch 1.9.0為例,安裝完成後做如下操作 1.安裝完ovs後將兩個.ko檔案拷貝到 etc sysconfig modules下,使用cp命令即可,如下 cd openvswitch 1.9.0 cp rf datapath linux openvswitch.ko etc s...