@artem78

Как в php скрипте определить, что его запустил Cron?

Как в php скрипте определить, что его запустил Cron?
  • Вопрос задан
  • 776 просмотров
Пригласить эксперта
Ответы на вопрос 3
Wolfnsex
@Wolfnsex Куратор тега PHP
Если не хочешь быть первым - не вставай в очередь!
Передать ему входной параметр, например -cron.
Ответ написан
Комментировать
@theg4sh
Насколько знаю, при запуске "вручную" появляются переменные $_SERVER['argc'] и $_SERVER['argv'], также появляются другие переменные окружения пользователя.

Следовательно:
if (isset($_SERVER['argc']) && isset($_SERVER['argv'])) {
    define('SELFSERVICE', 1);
}

if (defined('SELFSERVICE')) {
    echo "I'm a service";
} else {
    echo "I'm a web-dispatcher";
}


Ну или запускать скрипт через http-запрос
curl "http://name.site/script.php?cron=1"
Ответ написан
Комментировать
SlavikF
@SlavikF
Посмотрите вывод
phpinfo ();
для случая, когда он открыт в кроне и для случае, когда открыт через веб-сервер.

И выберите для себя параметр(ы) по которым будете определять
Например по вот так:
$isCron = !isset($_ENV['SSH_CLIENT']);

Но это может зависеть от системы
Ответ написан
Комментировать
Ваш ответ на вопрос

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

Войти через центр авторизации
Похожие вопросы