2015-07-22 25 views

Odpowiedz

4

Główna różnica między czterema różnymi sposobami zatrzymywania/restartowania polega na tym, co główny proces robi na wątkach i na sobie.

Zauważ, że Apache zaleca stosowanie apachectl -k jako polecenia oraz Systemd komenda otrzymuje httpd -k

apachectl -k stop lub httpd -k stop

Mówi to proces, aby zabić wszystkich jego wątków, a następnie wyjść

apachectl -k graceful lub httpd -k graceful

Apache doradzi swoje wątki, aby wyjść na biegu jałowym, a następnie pache wczytuje konfigurację (nie kończy się sama), co oznacza, że ​​statystyki nie są resetowane.

apachectl -k restart lub httpd -k restart

Jest to podobne do zatrzymania, że ​​proces zabija gwinty, a następnie proces ponownie ładuje plik konfiguracyjny zamiast zabijania się.

apachectl -k graceful-stop lub httpd -k graceful-stop

To działa jak -k graceful ale zamiast przeładowania konfiguracji, będzie przestać odpowiadać na nowe żądania i tylko żyć tak długo, jak stare wątki są wokół. Połączenie tego z nową instancją o numerze httpd może być bardzo skuteczne przy jednoczesnym uruchomieniu apache podczas aktualizowania plików konfiguracyjnych.

Źródło: https://httpd.apache.org/docs/2.4/stopping.html

Zalecenie: Zastosowanie -k graceful chyba coś jest nie tak z samego procesu głównego, w którym to przypadku połączenie -k stop i -k start lub -k graceful-stop i -k start są opcje do wyboru.

+0

Proszę również rozważyć polecenie ponownego ładowania Apache2. Dzięki. –

+0

'service apache2 reload' jest odpowiednikiem' -k graceful'. 'service apache2 restart' jest równoważne' -k stop', po którym następuje ponowne uruchomienie serwera. Przynajmniej w moim systemie; przeczytaj skrypt init.d w swojej dystrybucji, aby się upewnić. –

13
  1. Różnica między „restart” i „Reload”

    • Restart = zatrzymanie + rozpocznie
    • Reload = pozostają uruchomione + ponownego odczytania plików konfiguracyjnych.
  2. normalny restart i wdzięku restart, można odwołać artykuł:

    https://teckadmin.wordpress.com/2013/10/23/difference-between-graceful-restart-and-normal-restart/

+2

Czy możesz to wyjaśnić? – manetsus

+2

@manetsus szczegółowo wyjaśnia, co konkretnie? Gritful to ładniejszy restart. Restart zatrzyma wszystkie wątki robocze niezależnie od tego, co robią, zamykają i ponownie uruchamiają. Wdzięczny mówi wszystkim wątkom pracowniczym, aby zatrzymali się po zakończeniu, a gdy wszystkie wątki zakończą się, zamyka główny proces i uruchamia się ponownie. Jest to ważne, jeśli procesy apache nie zostały napisane z możliwością bezpiecznego wycofania. Jeśli nie używasz transakcji, piszesz pliku lub wysyłasz pakiety, restart może spowodować połowę zapisanych/zakończonych danych. Jest także bardzo nieuprzejmy dla użytkowników. – Fodagus

+1

Zabrakło miejsca na komentarz ... Przez "nieuprzejmy dla użytkowników". Jeśli użytkownik ma przetwarzanie żądania, nawet jeśli można je zakończyć bez powodowania uszkodzenia systemu, ponowne uruchomienie apache zwróci 500 błąd dla użytkownika. Użytkownicy tego nie lubią. – Fodagus

3

Wygląda graceful i reload są takie same dla apache2

W /etc/init.d/apache2:

graceful | reload | force-reload) 
# rest of the script