Чи є спосіб зупинити сервер Apache, не припиняючи виконувати запити, в основному спосіб сказати це - не приймайте більше з'єднань і не закривайте, коли закінчите поточні?
Чи є спосіб зупинити сервер Apache, не припиняючи виконувати запити, в основному спосіб сказати це - не приймайте більше з'єднань і не закривайте, коли закінчите поточні?
Відповіді:
Використовуйте apachectl -k graceful-stop
з тут :
Сигнал WINCH або витончене зупинення змушує батьківський процес радити дітям вийти після їх поточного запиту (або негайно вийти, якщо вони нічого не служать). Потім батько видалить свій PidFile і перестане слухати всі порти. Батько буде продовжувати працювати та контролювати дітей, які обробляють запити. Після завершення та завершення роботи всіх дітей або досягається час, визначений GracefulShutdownTimeout, батько також вийде.
Майте на увазі, що sys-v init використовував витончені зупинки за замовчуванням і мав зупинку як додатковий варіант. "Спеціальний" варіант для витонченої зупинки потрібен лише у тому випадку, якщо ви запустили спеціальний менеджер процесів, який зазвичай вбиває процеси.
/usr/sbin/apachectl stop
systemd
не призначений для користувача менеджер процесів, він не вбиває процес. Однак за замовчуванням systemd також виконуєstop
неgraceful-stop
apache.