crontab -e 运行python的脚本的坑
用shell + crontab寫了個(gè)監(jiān)控程序,詳情見上一篇博文 “時(shí)時(shí)監(jiān)控程序運(yùn)行的方法”
其中shell腳本運(yùn)行程序的命令:
python main_dynamic.py
雖然能監(jiān)控到程序有沒有運(yùn)行,但執(zhí)行出了問題。因?yàn)橛胮s -aux|grep main_dy,沒有找到運(yùn)行的腳本。
始終不明白為什么這里一直失敗。因?yàn)槲抑苯邮謩訄?zhí)行相應(yīng)的腳本。 sh .run.sh,是可以成功的。
想到路徑可能會導(dǎo)致這個(gè)問題。
所以將命令改動了,如下:
python /home/xxxx/yyyyy/main_dynamic.py
用ps查找,其結(jié)果仍然是失敗。
但在查找的過程中,系統(tǒng)有提示新郵件:?/var/log/message
然后進(jìn)去看了看,提示找不到pathlib包。進(jìn)行推斷python解釋器用python2的,因?yàn)閜ython3是支持的。
所以將命令改寫了。
?/root/anaconda3/xxxx/yyyy/python?? /home/xxxx/yyyyy/main_dynamic.py
測試就OK了。
為什么沒有快速懷疑到這點(diǎn)呢?
因?yàn)樵贚inux系統(tǒng)中,默認(rèn)的是python3,在任何路徑下直接輸入python,顯示都是python3。python2.exe目錄除外。
結(jié)論:crontab 執(zhí)行用到了python2;
提問:
crontab執(zhí)行時(shí)為什么會用到python2呢?
?
總結(jié)
以上是生活随笔為你收集整理的crontab -e 运行python的脚本的坑的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: windows 用pip pyahoco
- 下一篇: vim一直以来的切换命令行窗口(term