簡體   English   中英

Crontab 未在 Windows Subsystem for Linux (WSL) 上運行 python 腳本

[英]Crontab not running python script on Windows Subsystem for Linux (WSL)

我正在嘗試通過 WSL 在 Linux 上運行 python 腳本。

首先,我運行service --status-all並且atdcron都標記為[+] 為了確保它有效,我在crontab -e輸入了以下內容:

*/2 * * * * /home/myname/Task_scripts/example.sh

這是腳本文件 example.sh 的樣子:

#!/bin/sh
echo "Hello World - Generated every 2 mins" >> ~/hello1.txt

該文件確實每 2 分鍾按設置運行一次,因此到目前為止一切正常。

現在讓我們轉到 Python 部分。 我遵循完全相同的過程,即帶有腳本的 crontab,無論如何都無法運行它。 具體來說,這些是我希望工作但顯然沒有的兩種選擇(在我嘗試過的許多選擇中)。 僅供參考,我正在使用 anaconda 環境。

備選方案 1:

我在 crontab 中有什么: */2 * * * * /home/myname/Task_scripts/email_example.sh文件的樣子:

#!/bin/sh
/home/myname/anaconda3/envs/py36env/bin/python /home/myname/Production/example_email.py

以下是運行chmod +x email_example.sh后 .py 文件中的權限:

-rwxrwxrwx 1 myname myname 99 Nov 7 21:26 email_example.sh

備選方案 2:

設置crontab如下:

*/2 * * * * /home/myname/anaconda3/envs/py36env/bin/python /home/myname/Production/example_email.py

.py 的權限與上述相同。

手動執行:

/home/myname/anaconda3/envs/py36env/bin/python /home/myname/Production/example_email.py

運行它應該做的。

你有沒有將 example_email.py 作為可執行文件?

chmod +x /home/myname/Production/example_email.py

好吧,經過幾次嘗試后,我在 crontab 命令中添加了一個導出到日志文件的內容,並且能夠回溯問題。 這是一個 python 問題,並且在特定的 PYTHONPATH 中,我必須將其插入到我的 crontab 的第一行中。

對於這個故事,WSL 就像一個真正的 linux 操作系統一樣正常工作。

友情提示:始終確保包含日志文件。 對於初學者(包括我),這可以通過 crontab 中的以下示例來完成:

* * * * * /home/myname/Task_scripts/example.sh >> /home/myname/Logs/example.txt 2>&1

出於組織目的,創建了一個 Logs 目錄來收集此類文件。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM