Есть пара вещей, которые вы должны исправить, независимо от того, является ли это виновником, изменив их, ваш crontab должен работать.
Прежде всего, как и все остальные, убедитесь, что ваши сценарии оболочки имеют это или его эквивалентв вашей системе. Вы также можете перенаправить sdout и stderrr в свой crontab, используя что-то похожее на это в вашем crontab:
*/15 * * * * /bin/bash /home/pi/lightshowpi/lightson.sh 2&>1 >> lights_on_log.txt
Используя 2 &> 1, вы добавите stdout и stderr к этому файлу в домашнем каталоге дляпользователь, выполняющий задание cron, таким образом, вы можете просмотреть вывод и ошибки и точно выяснить, в чем проблема.
Наиболее вероятная причина проблемы заключается в том, что вы не используете полный путь кбинарный python, т.е. / usr / bin / python Вместо просто
python
Еще одна вещь, на которую вы, вероятно, должны обратить внимание, это то, что аргументы командной строки для обоих сценариев используют относительные пути и в зависимости от того, какой пользовательЗадание cron запущено, так как это может вызвать проблемы. Перейдите в любой каталог, в котором находится каталог py и файл overmech.cfg, или убедитесь, что для них также используются полные пути.
Последний бит, на который я хотел бы указать (я сохранил его последним, потому что он неэто не очень много значит), что один из ваших примеров показывает, что
/home/pi/lightshowpi/./lightsoff.sh
. является избыточным и не нужен. Точка-косая черта используется как средство сокращения полного пути к файлу в текущем каталоге с тех пор. расширяется до текущего рабочего каталога и / помогает создать последний бит пути. В приведенном выше примере вы без проблем обойдетесь. и просто используя полный путь, как это:
/home/pi/lightshowpi/lightsoff.sh