Crontab не запускает сценарий Python в подсистеме Windows для Linux (WSL) - PullRequest
0 голосов
/ 08 ноября 2018

Я пытаюсь запустить скрипт на Python в Linux через WSL.

Прежде всего я запускаю service --status-all, и оба atd и cron помечаются как [+]. Просто чтобы убедиться, что это работает, я набрал 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 со скриптом, и не могу запустить его, несмотря ни на что. В частности, это две альтернативы (среди многих, которые я пробовал), которые я ожидал работать, но, по-видимому, нет. К вашему сведению, я использую анаконду.

Альтернатива 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

Вот права на файл .py после запуска chmod +x email_example.sh:

-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

работает как положено.

Ответы [ 2 ]

0 голосов
/ 08 ноября 2018

Что ж, после нескольких попыток я добавил экспорт в файл журнала в команде crontab и смог устранить проблему. Это была проблема с питоном и в конкретной PYTHONPATH, которую я должен был вставить в первую строку моего crontab.

Для истории WSL отлично работает, как настоящая ОС Linux.

Дружелюбный совет: всегда включайте файл журнала Для начинающих (включая меня) это можно сделать на следующем примере в crontab:

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

Для организационных целей создан каталог журналов для сбора таких файлов.

0 голосов
/ 08 ноября 2018

вы сделали example_email.py как исполняемый файл?

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