Я уже несколько часов стучаю головой об этом.
Я выполняю 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
Любая помощь будет принята с благодарностью.
Заранее спасибо.
Вы должны gpio
свой путь для gpio
и gpio
точное местоположение, чтобы cron знал, где его найти, /usr/local/bin
не импортируется cron:
/usr/local/bin/gpio
Таким образом, это будет:
exec('/usr/local/bin/gpio write 7 0);
на линии
exec('gpio write 7 0);
если
exec('gpio write 7 0');
? Похоже, что "никогда не было закрыто.
php
вместо/usr/bin/php
в скрипте cron. Некоторые из них получают требовательное редактирование - я вижу, вы говорите, что запускаете его на ras-pi, попробуйте