[爆卦]python無法執行是什麼?優點缺點精華區懶人包

為什麼這篇python無法執行鄉民發文收入到精華區:因為在python無法執行這個討論話題中,有許多相關的文章在討論,這篇最有參考價值!作者asd24693120 (曙光)看板Linux標題[問題] python-crontab無法執行...


各位前輩好,想請問各位前輩關於python-crontab無法執行問題,我有一個python檔,當
我直接執行時,都能夠順利執行,如下圖:
https://i.imgur.com/NRXbrhM.jpg

然而當我使用用python所寫的crontab時,執行時卻沒有任何反應,如下圖

Python程式碼:
https://i.imgur.com/7ipc2S4.jpg

運行結果:
https://i.imgur.com/CetdhLY.jpg

發現程式碼本身沒錯誤,但卻沒有任何反應,也有去查了crontab的例行排程,也確定有
輸入進去
https://i.imgur.com/0KCW8AR.jpg

不知道出現了什麼問題,還請各位前輩指導

--
※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 114.136.32.93 (臺灣)
※ 文章網址: https://www.ptt.cc/bbs/Linux/M.1624262261.A.39F.html
bitlife: 所謂[反應]是指什麼? 如果是指輸出,去信箱查一下看看06/21 16:13
b大您好,想請問您是說這個嗎
https://i.imgur.com/22XnwcG.jpg

我改用這個指令後,有查到,如圖:
https://i.imgur.com/MqAebbP.jpg
https://i.imgur.com/wAolNLO.jpg
※ 編輯: asd24693120 (218.164.12.247 臺灣), 06/21/2021 18:00:07
bitlife: man cron 8 裏面有說, crontab的owner(一般是root)的信箱06/21 18:07
bitlife: 一般cron job是不產生輸出的,有需要也是自己開個檔寫資料06/21 18:08
bitlife: 你後兩個圖是cron有執行你的job的log,不是你程式的輸出06/21 18:09
bitlife: 沒用過python,這輸出很像java的log4j之類的格式,看一下是06/21 18:12
bitlife: 否有相關設定檔可指定log輸出到你指定的路徑而非標準輸出06/21 18:12
bitlife: ,因為交談式(在終端機視窗下)執行標準輸出是終端機,但被 06/21 18:13
bitlife: 丟到背景執行標準輸出就不一定(cron則是接受輸出後轉寄為06/21 18:14
bitlife: mail),所以一般不輸出到標準輸出,而是輸出到自訂檔案06/21 18:14
bitlife: ^背景執行時06/21 18:16
b大對不起,我有一點看不懂您的意思,我對ubuntu沒有到很熟,真的非常抱歉
kenduest: 命令改一下 python xxx.py > /path/xxx.log 2>&1 這方式06/21 18:45
kenduest: 然後看輸出的 log 裡面顯示什麼資訊提供除錯06/21 18:45
※ 編輯: asd24693120 (218.164.12.247 臺灣), 06/21/2021 21:33:25
謝謝k大的建議,這樣就馬上顯示出問題在哪了
bitlife: 我看了訊息內容覺得有點印象,a了一下你的id,果然是之前有06/21 23:56
bitlife: 回覆驅動之類問題,只能說先用k大提的方式先應付,最好還是 06/21 23:56
bitlife: 把工作環境有個初步認識會比較好,不然可能會有解不完的問06/21 23:57
bitlife: 題,而問題的共通點都是因為對工作環境不熟悉06/21 23:58
對的,真的很謝謝b大還特別去看我之前發的文,我確實對ubuntu還沒有很熟悉,這部分
我會再回去加強,真的很謝謝您
MOONY135: 我猜大概是chmod問題...06/22 12:35
MOONY135: chmod 644?06/22 12:35
bitlife: 他的py腳本是叫用python執行,照道理不是mode問題.要說也06/22 13:37
bitlife: 是python不在cron找尋命令的路徑中,我不太確定cron會不會06/22 13:38
bitlife: 參考它自己的PATH變數,不過python用全路徑是好建議06/22 13:38
想請問b大說的全路徑是指絕對路徑嗎,要把ubuntu預設的python在哪個位置也打出來是
嗎?
bamchisu: 你crontab前面寫錯了,五個都*是什麼時候要他執行? 06/22 22:26
回ba大,這部分我一開始也覺得很奇怪,但是每1分鐘執行好像確實就是這樣,我有改成
兩分鐘,就會顯示成/*2這樣了
※ 編輯: asd24693120 (218.164.12.247 臺灣), 06/22/2021 23:12:37
bitlife: 我所謂全路徑是full path也就是你說的絕對路徑 06/22 23:19
bitlife: 5個星是每分鐘沒錯, *代表first-last,在分鐘位置就每分鐘 06/22 23:21
bamchisu: 那抱歉是我錯了,那這樣,你把which python的結果 06/23 01:47
bamchisu: 替換到你crontab 那行python 那邊試試看 06/23 01:48
bamchisu: 你跑程式的時候用了sudo, 也就是root在跑, 06/23 01:49
bamchisu: 你應該要知道root user執行python用的是哪個python 06/23 01:49
bamchisu: 然後加在crontab裏面,應該就會有機會跑對了 06/23 01:50
bamchisu: 就是crontab前面改成* * * * * /usr/bin/python $filepy 06/23 01:54
abukwan: 用絕對路徑 包含py檔內有引用的其它檔 07/11 23:39

你可能也想看看

搜尋相關網站