Czy istnieje sposób na zatrzymanie serwera Apache bez przerywania wykonywania żądań, w zasadzie sposób na powiedzenie - nie akceptuj więcej połączeń i zamykaj się po zakończeniu obecnych?
Skorzystaj apachectl -k graceful-stop
z tutaj :
Sygnał WYSZUKAJ lub płynnego zatrzymania powoduje, że proces nadrzędny doradza dzieciom, aby zakończyły pracę po ich bieżącym żądaniu (lub natychmiast zakończyły działanie, jeśli nic nie obsługują). Następnie rodzic usunie swój plik PidFile i przestanie nasłuchiwać na wszystkich portach. Rodzic będzie nadal działał i monitorował dzieci, które przetwarzają żądania. Po zakończeniu wszystkich dzieci i zakończeniu lub przekroczeniu limitu czasu określonego przez GracefulShutdownTimeout, rodzic również wyjdzie.
Należy pamiętać, że sys-v init domyślnie wykonywał płynne zatrzymanie i miał opcję zatrzymania siły jako dodatkową opcję. „Specjalna” opcja łagodnego zatrzymania jest potrzebna tylko wtedy, gdy uruchomisz niestandardowego menedżera procesów, który normalnie zabija procesy.
systemd
nie jest niestandardowym menedżerem procesów, nie zabija procesu. Jednak domyślnie Systemd również wykonujestop
niegraceful-stop
dla apache./usr/sbin/apachectl stop