Припиніть Apache витончено


24

Чи є спосіб зупинити сервер Apache, не припиняючи виконувати запити, в основному спосіб сказати це - не приймайте більше з'єднань і не закривайте, коли закінчите поточні?

Відповіді:



12

Використовуйте apachectl -k graceful-stopз тут :

Сигнал WINCH або витончене зупинення змушує батьківський процес радити дітям вийти після їх поточного запиту (або негайно вийти, якщо вони нічого не служать). Потім батько видалить свій PidFile і перестане слухати всі порти. Батько буде продовжувати працювати та контролювати дітей, які обробляють запити. Після завершення та завершення роботи всіх дітей або досягається час, визначений GracefulShutdownTimeout, батько також вийде.


1

Майте на увазі, що sys-v init використовував витончені зупинки за замовчуванням і мав зупинку як додатковий варіант. "Спеціальний" варіант для витонченої зупинки потрібен лише у тому випадку, якщо ви запустили спеціальний менеджер процесів, який зазвичай вбиває процеси.


Ця відповідь могла скласти враження, що оскільки systemdне призначений для користувача менеджер процесів, він не вбиває процес. Однак за замовчуванням systemd також виконує stopне graceful-stopapache.
Б. Міллер

4
@ B.Miller, якщо ваш systemd виконує зупинку замість витонченої зупинки, це специфічна для ОС помилка, яку потрібно зареєструвати. Arch Linux і CentOS 7 виконують витончені зупинки.
Харальд

Дебіан теж витончено зупиняється
Джон Кіт

2
Цікаво @JohnKeates ... можливо, це специфічно для Ubuntu 18.04. 18.04 використовує команду стоп/usr/sbin/apachectl stop
Б. Міллер
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.