crontab - 解決 mac 下通過 crontab 設置了 Python 腳本的定時任務卻無法運行

背景

通過 crontab 定時運行 python 腳本來發送釘釘消息

https://www.cnblogs.com/poloyy/p/15565875.html

 

一開始的定時任務

*/1 * * * * python3 /Users/test.py

 

確定 Python 腳本是否可正常執行

命令行下敲

 python3 /Users/test.py

發現是可以正常運行的

 

那爲什麼 crontab 不運行呢?來一步步解決!

OS X 的定時任務統統由 launchctl 來管理的,看看 cron 任務有沒有在裏面

# 定時任務統統由 launchctl 來管理的,看看 cron 任務有沒有在裏面
sudo launchctl list | grep cron 

# 有記錄。查看一下啓動項的配置
locate com.vix.cron

# 創建一個database
sudo launchctl load -w /System/Library/LaunchDaemons/com.apple.locate.plist

# 查看 /etc/crontab 是否存在
ls -alF /etc/crontab

# 創建該文件
sudo touch /etc/crontab

以爲搞定了!結果一分鐘後還是不行

 

驗證 crontab 是否可真正執行

# 每分鐘輸出當前時間到time.txt上.
*/1 * * * * /bin/date >> /User/time.txt 

一分鐘後去看,發現是有文件的,證明 crontab 沒問題

 

關鍵點:絕對路徑

一開始寫的定時任務中,python3 是相對路徑,這是不對的,應該用絕對路徑

*/1 * * * * /usr/local/opt/python@3.9/bin/python3.9 /User/test.py

這樣就可以正常執行了!

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章