Ответ 1
Основное различие между четырьмя различными способами остановки/перезапуска состоит в том, что основной процесс делает с его потоками и о себе.
Обратите внимание, что Apache рекомендует использовать apachectl -k
в качестве команды, а для systemd команда заменяется на httpd -k
apachectl -k stop
или httpd -k stop
Это сообщает процессу убить все его потоки, а затем выйти из
apachectl -k graceful
или httpd -k graceful
Apache сообщит о том, что его потоки выходят из режима ожидания, а затем apache перезагружает конфигурацию (она не выходит сама), это означает, что статистика не reset.
apachectl -k restart
или httpd -k restart
Это похоже на остановку, поскольку процесс уничтожает потоки, но затем процесс перезагружает файл конфигурации, а не убивает себя.
apachectl -k graceful-stop
или httpd -k graceful-stop
Это действует как -k graceful
, но вместо перезагрузки конфигурации он перестанет отвечать на новые запросы и будет жить только до тех пор, пока вокруг него будут старые потоки. Объединение этого с новым экземпляром httpd
может быть очень мощным при одновременном запуске apache при обновлении файлов конфигурации.
Источник: https://httpd.apache.org/docs/2.4/stopping.html
Рекомендация: используйте -k graceful
, если что-то не так с самим основным процессом, и в этом случае предпочтительными являются комбинации -k stop
и -k start
или -k graceful-stop
и -k start
.