@integrall

Почему cron не выполняет php-скрипт от админа с коммандой перезагрузки, а вручную выполняет?

Скрипт выглядит так:
include_once "smsc_api.php"; //прикладываем библиотеку для отправки смс

$doc = new DomDocument;
$doc->validateOnParse = true;

$res = $doc->Load('http://example.ru/feed/'); //Получаем ресурс с сайта
if (!$res) { //если ресурс не получен, значит сервак упал
	exec("service mysqld restart"); //Перезагружаем сервер БД
	list($sms_id, $sms_cnt, $cost, $balance) = send_sms("79176329140", "Server is down. Trying to restart...", 1); // Отправляем смс о том, что СУБД упала и была перезагружена
} else {
	echo "No problem";
}
?>


Вручную скрипт исполняется замечательно, а по cron нет. Что я делаю не так?
Выполняется в Vesta от имени admin.
  • Вопрос задан
  • 190 просмотров
Пригласить эксперта
Ответы на вопрос 2
@kostya_vtomske
а у вас www-data в sudouser ?

exec('sudo -u www-data -S /etc/init.d/mysql restart');
Ответ написан
Комментировать
saboteur_kiev
@saboteur_kiev
software engineer
include_once "smsc_api.php";


А откуда ваш крон начинает выполнение, какая у него текущая папка при запуске скрипта, и находит ли он в ней этот smsc_api.php?
Добавьте в крон или в скрипт полные пути или cd
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы