Я пытаюсь понять, почему сценарий работает с использованием ./runmusic
, но не запускается из cronjob. Где и почему было бы лучше всего разместить отчет об ошибках?есть ли разница в выходе ошибки при размещении регистрации ошибок в скрипте и в самой cronjob?
мой сценарий
[email protected] ~/Music $ cat runmusic
#!/bin/bash
exec >>omx_log_from_runmusic 2>&1
echo $(date)
DISPLAY=:0
var=$(\ls songs/|shuf -n 1)
#omxplayer -o local /home/pi/Music/Bloodletting.mp3
omxplayer -o local "/home/pi/Music/songs/$var"
$ кронтаб -l
* * * * * bash /home/pi/Music/runmusic > /tmp/setvals
Я сейчас не получаю сообщения об ошибках от любой из этих файлов, хотя я получаю ожидается вывод текста из в-скрипта Ведение журнала. например «Have nice day :)» в качестве закрытия omxplayer
Сценарий перенаправляет 'stderr' в' stdout', который перенаправляется на 'omx_log_from_runmusic'. В этом файле вы найдете журнал ошибок. Перенаправление в cron будет пустым, потому что сценарий уже перенаправил файлы 'stderr' и' stdout' в файл. Перенаправление в cron ограничено перенаправлением 'stdout' и' stdin' в файл вместе или по отдельности. Сценарий имеет гораздо больший контроль, потому что он может перенаправляться на несколько целей по мере необходимости, например, один журнал для БД, другой журнал для не-БД и т. Д. – alvits
Запуск интерактивных программ от 'cron' просто сумасшедший. – tripleee
@triplee Я не думал, что это интерактивная программа .... она просто отображает уведомление. Он не требует ввода пользователя. Можете ли вы объяснить, почему запустить его, как будто это плохая идея? – Rilcon42