Я пытаюсь запустить скрипт на 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
работает как положено.