Описание тега marshrutkas
У меня есть shell-скрипт, который прекрасно работает при запуске вручную, но происходит сбой при запуске через кронтаб. Сценарий, по существу, делает следующим образом:
Python скрипт для получения звуковых данных и трубы в stdout | ffmpeg на данные из stdin и трубы в stdout | трансляция данных из stdin
При запуске через crontab потоков не удается, жалуются, что нет данных на стандартный ввод (...нет (больше) имеются данные на стандартный ввод
).
Я нашел этот ответ, который, кажется, ссылку на этот момент файловых дескрипторов в crontab, но я был бы признателен некоторые подробности о проблеме и лучший способ обойти его.
Редактировать: Поиск и устранение неисправностей проблема при попытке каждой команды в отдельности показывает, что проблема начинается в скрипт на Python, который жалуется:
закрыть не удалось в файл объекта деструктор:
Сыс.excepthook отсутствует
потерял представление sys.поток stderr"
Вместо вывода звуковых данных. Следуя советам здесь и здесь (добавил Сыс.поток stdout.метод flush() в конце файла) можно увидеть реальное сообщение об ошибке:
Обратная трассировка (самый недавний призыв последнего):
Файл "для/Home/*имя пользователя*/testing.py", строка 109, в <модуль>
Сыс.поток stdout.заподлицо()
IOError: [errno значение 9] плохой дескриптор файла
Так что, возможно, это больше проблема питона..хотя от ошибки это стиль, похоже, придется делать с stdin/stdout в