Ваш скрипт выполняется Cron, и все работает, как и ожидалось. Просто Cron не предназначен для вывода чего-либо в терминал. Итак, IMO, правильный вопрос здесь должен выглядеть примерно так: куда идет стандартный вывод в Cron?
Если он не перенаправлен ( >
, >>
) или piped ( |
) в другую программу, все, что обычно выводится в STDOUT (если вы выполняете команду в командной строке), включая все сообщения об ошибках, будет отправлено в локальный почтовый ящик пользователя, который запускает Cronjob. Чтобы отправлять / получать эти электронные письма, вы должны применить минимальную конфигурацию, как описано здесь: Как настроить Cron для отправки электронных писем?
Большинство предложений в предлагаемом дублировании объясняют, как перенаправить вывод Cronjob в TTY или окно терминала, но чтобы получить вывод там, вы должны заранее войти в систему (в этом окне TTY или терминала). Вот несколько дополнительных примеров:
Кроме того, в этом случае:
cd /home/
не нужен, потому что ваш скрипт ничего там не пишет, а скрипт вызывается по его полному пути.
/usr/bin/python
это не нужно, потому что вы указываете системе, что это скрипт на Python, по шебангу #!/usr/bin/env python
. Но в этом случае файл должен иметь исполняемые разрешения: chmod +x /home/hello.py
.