php exec () не запускается через задание cron

2

Я уже несколько часов стучаю головой об этом.

Я выполняю php-скрипт через задание cron, все в скрипте работает, за исключением метода exec().

<?php
    exec('gpio write 7 0');

    // Open the file to get existing content
    $current = file_get_contents('log.txt');

    // Append a new person to the file
    $current .= get_current_user().' - '.date('H').":".date('i')." - gpio write 7 0\n";

    // Write the contents back to the file
    file_put_contents($log, $current);
?>

Если я выполняю скрипт php непосредственно с терминала, он работает как с пользователем pi и с пользователем root.

Данные, которые записываются в файл log.txt при выполнении задания cron, отлично смотрятся на меня, вот пример:

root - 00:16 - gpio write 7 0
root - 00:17 - gpio write 7 0
root - 00:18 - gpio write 7 0
root - 00:19 - gpio write 7 0

Я попытался предоставить php файл, который должен быть выполнен как с разрешениями 755 и с 777 без везения.

Это то, что у меня есть, когда я выполняю sudo crontab -e

*/1 * * * * /usr/bin/php /var/www/check_time.php

Любая помощь будет принята с благодарностью.

Заранее спасибо.

Теги:
cron
raspberry-pi
gpio

2 ответа

3
Лучший ответ

Вы должны gpio свой путь для gpio и gpio точное местоположение, чтобы cron знал, где его найти, /usr/local/bin не импортируется cron:

/usr/local/bin/gpio

Таким образом, это будет:

exec('/usr/local/bin/gpio write 7 0);
0

на линии

exec('gpio write 7 0);

если

exec('gpio write 7 0');

? Похоже, что "никогда не было закрыто.

  • 0
    Нет, это была опечатка, когда я писал пост. хороший улов, хотя Я обновил пост соответственно. Спасибо
  • 0
    на каком компьютере / сервере вы его используете? Кажется, что php не выполняет скрипт. На новых серверах Ubuntu вы можете просто использовать php вместо /usr/bin/php в скрипте cron. Некоторые из них получают требовательное редактирование - я вижу, вы говорите, что запускаете его на ras-pi, попробуйте

Ещё вопросы

Сообщество Overcoder
Наверх
Меню