Я пытаюсь сделать будильник с веб-интерфейсом (на моем Raspberry Pi).
Я хочу сделать это с помощью PHP и crontab.
Это мой код PHP:
shell_exec("./wake.sh $minutes $hours $days");
Это скрипт wake.sh:
echo "number 1: $1; number 2: $2; number 3: $3" | wall;
(crontab -u $USER -l; echo "$0 $1 * * $2 /var/www/alarm.sh") | crontab -u $USER -
Если я запускаю скрипт из bash (от пользователя www-data), я получаю широковещательное сообщение и запись в файле crontab, но если я запускаю его из PHP-скрипта, широковещательное сообщение отправляется, но записи нет в файле crontab.
Я наконец узнал ответ: $USER
переменная пуста, если я выполню ее из PHP.
Сейчас я использую:
(crontab -l; echo "$0 $1 * * $2 /var/www/alarm.sh") | crontab -
и это работает!
Других решений пока нет …