Определить с PHP apachectl -k graceful-stop - PullRequest
0 голосов
/ 13 апреля 2020

Apache 2.4 имеет команду грациозная остановка . Команда не уничтожает процессы напрямую, она отправляет сигтеру процессам, ожидает X секунд (в зависимости от GracefulShutdownTimeout ) и, если процесс все еще существует, вызывает принудительное уничтожение.

Я пытаюсь обнаружить это из PHP, чтобы остановить длинные задачи, но я не знаю, как это сделать. Похоже, connection_status () не работает для этой цели. И pcntl_signal () работает только с ... процессами, созданными из PHP?

<?php

$file = '/path/to/logs/test.log';
$secondsToSleep = 90;


@unlink($file);

for ($i=0; $i<$secondsToSleep; $i++) {
    if (connection_status()) {
        file_put_contents($file, 'Closed with status '.connection_status());
        exit;
    }

    sleep(1);
}

file_put_contents($file, 'DONE');

Знаете ли вы, как обнаружить изящную сигтерму?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...