У меня есть следующая проблема: мой 'привет мировой' скрипт Python не может быть запущен crontab.
Если я установил crontab инструкцию как это:
* * * * * cd /home/ && /usr/bin/python /home/hello.py
Текст не появляется в терминале.
Но если я делаю:
* * * * * cd /home/ && /usr/bin/python /home/hello.py >> /home/log.txt
Ubuntu добавляет 'привет мировой' текст к log.txt
вот мой сценарий:
#!/usr/bin/env python
print('Hello World!')
Что я делаю неправильно?
P.S. уже считайте эту тему, Почему crontab сценарии не работают?
Ваш сценарий выполняется Кроном, и все работает, как он ожидается. Просто Крон не разработан для вывода чего-либо в терминал. Так, IMO, корректный вопрос здесь должен быть чем-то как: Куда стандартный вывод идет в Кроне?
Если это не перенаправляется (>
, >>
) или переданный по каналу (|
) к другой программе все, что обычно будет производиться к STDOUT (если Вы, выполняют команду в командной строке), включая все сообщения об ошибках, будет отправлено в локальный почтовый ящик пользователя, который выполняет Cronjob. Для отправления/получения этих электронных писем, необходимо применить минимальную конфигурацию, как она описана здесь: Как я устанавливаю Крон для отправки электронных писем?
Большинство предложений в предложенном дублировании объясняет, как перенаправить вывод Cronjob к TTY или окну терминала, но получить вывод там необходимо быть входом в систему (в этом TTY или окно терминала) заранее. Вот немного дополнительных примеров:
Задание крона для запущения скрипта Python в перезагрузке не работает
Crontab и программа, которая должна быть выполнена в окно терминала
Как запустить любое связанное с GUI приложение от Crontab в Ubuntu
Кроме того, в этом случае:
cd /home/
не нужно, потому что Ваш сценарий ничего не пишет там, и сценарий называет его полный путь./usr/bin/python
не neede, потому что Вы говорите систему, которая является сценарием Python хижиной #!/usr/bin/env python
. Но в этом случае файл должен иметь исполняемые полномочия: chmod +x /home/hello.py
.Можно попробовать это!
* * * * * cd /home/ && /usr/bin/python /home/hello.py >> /dev/tty3
(или Ваш tty, если не tty3)