crontab python subprocess: некорректная работа
Python скрипт, запущенный через crontab, некорректно выполняется.
crontab -e
@reboot cd /<path>/ && /usr/bin/python3 main.py > log.txt 2>&1
main.py
subprocess.check_output(cmd, shell=True, env=os.environ.copy(), timeout=3200)
Программа запускается, выполняется до конца без критических ошибок, но нужный результат не выдает.
Результат сохраняется в файл: -o <path>
Все пути прописаны полностью.
Если скопировать содержимое переменной cmd в терминал и запустить, программа успешно выполнится и выдаст нужный результат.
Если запускать cd /<path>/ && /usr/bin/python3 main.py из терминала, программа успешно выполнится и выдаст нужный результат.
Запускаемая в cmd программа скомпилирована, дебаг и изменения невозможны.
Сравнивал результаты из os.environ.copy() при запуске через терминал и crontab.
Добавлял недостающие переменные в crontab и python.
При запуске через терминал, первая строка лога выполнения:
[INF] Creating temporary output file: /tmp/<random_string>
При запуске через crontab, первая строка лога выполнения:
[ERR] blank input file specified
С чем связанно такое поведение и как это исправить?