rebootjest zasadniczo pseudonimem dla shutdown -r... więc ... tak.
Nathan C
Czy mój post odpowiedział na twoje pytanie, czy potrzebujesz czegoś jeszcze?
Joffrey
Nie mogę tutaj jeszcze komentować, ale chciałem tutaj umieścić ostrzeżenie o ponownym uruchomieniu komputera. Jeśli instancja znajduje się na Amazon EC2, ponowne uruchomienie -h teraz ją zablokuje, więc nigdy tego nie rób. Zamiast tego, jeśli musisz zamknąć lub zrestartować komputer, zrób to za pośrednictwem interfejsu internetowego Amazon, a nie powłoki. Jeśli utworzysz cegłę instancję, możesz ją zatrzymać, odłączyć wolumin, utworzyć osobną instancję i dołączyć do niej wolumin, bez odłączania pierwszego woluminu dostarczonego z nową instancją. Następnie musisz ssh w nowej instancji, zamontować stary wolumin i usunąć z niego pliki.
kloddant
w rzeczywistości chcesz uruchomić sync: sync;przed uruchomieniem, shutdown -raby wszystkie operacje we / wy pliku zostały zsynchronizowane. Podejrzewam, że to również rozwiąże problem zmysql
user3629249
Odpowiedzi:
92
Nie ma lepszego sposobu na zrestartowanie serwera przy użyciu czegokolwiek innego niż te polecenia.
zamknięcie jest najczęstszym sposobem zatrzymania systemu. Dodanie argumentu -ri określonego czasu (lub „ now”) spowoduje ponowne uruchomienie systemu zamiast zatrzymywania go po sekwencji zamykania.
reboot jest zamkniętym zamknięciem, które wymaga konserwacji dysku twardego (synchronizacja i / lub przełączanie w tryb gotowości i nie jest tak naprawdę istotne).
Nowe wersje reboot(> 2.74) zostaną zainicjowane, shutdownjeśli nie będą na poziomie 0 lub 6.
Większość skryptów inicjujących wywołuje zatrzymanie, aby zalogować się do utmp .
Nowoczesne dystrybucje będą obejmować wszystkie zadania, niezależnie od tego, którego polecenia używasz. Zasadniczo wszystkie one inicjują czas zamykania twoich skryptów SysV (CentOS <7) lub systemd (CentOS> = 7) (nazywam je skryptami inicjującymi dla ułatwienia czytania).
Wyłączanie przy użyciu skryptów startowych krok po kroku zatrzymać wszystkie swoje usługi zarejestrowane pod zwykle runlevel „S”. Poszczególne skrypty inicjujące mogą mieć limit czasu, podobnie jak skrypt inicjujący MySQL w CentOS. Gdy podany zostanie argument stop, a demon nie zostanie zamknięty w odpowiednim czasie, skrypt zatrzyma się i zakończy działanie, powodując awarię. Proces zamykania będzie kontynuowany, jakby nic się nie stało, trwa tylko trochę dłużej i prawdopodobnie wydrukuje ostrzeżenie. Na koniec, gdy wszystkie skrypty inicjujące zostaną wykonane, nastąpi nieuniknione: wszystkie nadal działające procesy otrzymają SIGTERMsygnał, a po kilku sekundach (2 lub 5) a SIGKILL. Spowoduje to wyczyszczenie reszty przed wykonaniem połączenia ACPI w celu ponownego uruchomienia lub wyłączenia systemu.
Jednym wyjątkiem jest użycie rebootpolecenia z -fopcją, spowoduje to pominięcie wykonywania skryptów inicjujących i bezpośrednie ponowne uruchomienie systemu.
Lepiej będzie ustalić przyczynę swoich obaw: MySQL nie zamyka się poprawnie.
Często wynika to z ogromnego obciążenia pracą, którą należy wykonać, aby daemon mógł zostać bezpiecznie zamknięty. Kiedyś miałem instancję MySQL z +300.000 tabel, których wyjście zajęło ponad godzinę. Podobne problemy można znaleźć w systemach wykorzystujących ogromne bufory i rzadką dostępność we / wy.
Myślę, że masz na myśli shutdown -r now, a może po prostu reboot. rebootPolecenie nie posiada -hopcji.
Michael Hampton
1
Cześć Michael, Centos 6.x rzeczywiście ma opcję zatrzymania usług przed ponownym uruchomieniem. „shutdown -h now” to płynne zamknięcie, a „restart -h teraz” to płynne ponowne uruchomienie. Wypróbuj na swoim serwerze
Centos
1
O? A co robi ta -hopcja? Nie ma go na stronie podręcznika.
Michael Hampton
2
Naprawdę? Czy masz na to dokumentację? Ponieważ po pierwsze to właśnie rebootrobi bez-h . Po drugie, o ile mi wiadomo, wcale nie jest tak udokumentowane.
Michael Hampton
2
Dokument, który właśnie połączyłeś, podaje dokładnie to, co ci powiedziałem! rebootnie ma -hopcji, shutdownrobi.
Michael Hampton
2
Udzielając zdalnych instrukcji użytkownikom końcowym i klientom, polecam im, aby użyli poweroffdo zamknięcia i wyłączenia systemu.
Jeśli chcą ciepłego ponownego uruchomienia, sugeruję, aby użyli rebootpolecenia.
Nie zgadzam się z tą odpowiedzią. restart i zamknięcie systemu (Ctrl-Alt-Delete) jest wymuszone i może w niektórych środowiskach, takich jak te z mySQL, powodować blokadę gniazda, która następnie wymaga utworzenia nowego gniazda lub usunięcia / przeniesienia istniejącego gniazda przed odtworzeniem nowego jeden.
z drugiej strony moja odpowiedź nie była żartobliwa, po prostu próbowałem wyjaśnić odpowiedź tym, którzy próbują rozwiązać to pytanie. Proszę zobaczyć moją wcześniejszą odpowiedź, mam nadzieję, że to pomoże.
GeckoSEO,
2
Używam polecenia „init 6”.
init 6 mówi procesowi init, aby zamknął wszystkie odrodzone procesy / demony zapisane w plikach init (w odwrotnej kolejności, w jakiej zostały uruchomione) i na koniec wywołuje polecenie shutdown -r now, aby ponownie uruchomić komputer.
Mam wrażenie, że może ci się nie spodobać ta odpowiedź, ale ta odpowiedź zawiera pewien wgląd, którego nikt nie bierze pod uwagę. . . Ty piszesz:
Zawsze używałem polecenia:
zamknij -r teraz
Czasami jednak powoduje to problemy z MySQL.
Problem w tym, że NIE jest twoją metodą zamykania, jest to oprogramowanie, które nie może poprawnie obsługiwać zamykania; MySql.
JEDYNYM sposobem, w jaki możesz to naprawdę rozwiązać, jest zastąpienie MySql (PostgreSql jest świetnym zamiennikiem) LUB napisanie własnego skryptu zamykającego, który PIERWSZY koduje MySql jak dziecko, a kiedy jest szczęśliwy, że go można zamknąć, TO zamyka system.
... Jako osoba, która specjalizuje się w systemach baz danych od ponad 26 lat, mogę powiedzieć, że dopiero w ostatnim czasie MySql zaczął zbierać informacje na temat kompetencji w najważniejszych aspektach systemów baz danych dla - bezpieczeństwo / integralność danych. Poprzednio zwracali mniejszą uwagę na te aspekty, a większą uwagę na wydajność. Ale jaka jest dobra wydajność w przypadku utraty danych? W NIEKTÓRYCH aplikacjach, takich jak np. Nagrywanie strumieniowe Netflix, w którym momencie oglądasz, absolutna wierność może nie być szczególnie ważna - być może nawet Twoi klienci lubią kopie zapasowe wideo po awarii. Ale w systemie bankowym jest to katastrofa o epickich rozmiarach. Tylko właściciel danych może wiedzieć, co jest dla nich odpowiednie.
Zastąp mysql tylko dlatego, że występują problemy z restartowaniem lub zamykaniem systemu? A ostatnia część rozwiązania nie przyczynia się do rozwiązania problemu osoby, która zadaje pytanie
ftrujillo
Ta odpowiedź jest stronnicza w stosunku do mysql bez źródeł lub referencji. Nie jest to przydatne w kontekście pytania; każde oprogramowanie, którego zamknięcie trwa zbyt długo, może powodować problemy podczas ponownego uruchamiania (szczególnie w przypadku systemd i jego agresywnych limitów czasu).
reboot
jest zasadniczo pseudonimem dlashutdown -r
... więc ... tak.sync: sync;
przed uruchomieniem,shutdown -r
aby wszystkie operacje we / wy pliku zostały zsynchronizowane. Podejrzewam, że to również rozwiąże problem zmysql
Odpowiedzi:
Nie ma lepszego sposobu na zrestartowanie serwera przy użyciu czegokolwiek innego niż te polecenia.
-r
i określonego czasu (lub „now
”) spowoduje ponowne uruchomienie systemu zamiast zatrzymywania go po sekwencji zamykania.reboot
(> 2.74) zostaną zainicjowane,shutdown
jeśli nie będą na poziomie 0 lub 6.Nowoczesne dystrybucje będą obejmować wszystkie zadania, niezależnie od tego, którego polecenia używasz. Zasadniczo wszystkie one inicjują czas zamykania twoich skryptów SysV (CentOS <7) lub systemd (CentOS> = 7) (nazywam je skryptami inicjującymi dla ułatwienia czytania).
Wyłączanie przy użyciu skryptów startowych krok po kroku zatrzymać wszystkie swoje usługi zarejestrowane pod zwykle runlevel „S”. Poszczególne skrypty inicjujące mogą mieć limit czasu, podobnie jak skrypt inicjujący MySQL w CentOS. Gdy podany zostanie argument stop, a demon nie zostanie zamknięty w odpowiednim czasie, skrypt zatrzyma się i zakończy działanie, powodując awarię. Proces zamykania będzie kontynuowany, jakby nic się nie stało, trwa tylko trochę dłużej i prawdopodobnie wydrukuje ostrzeżenie. Na koniec, gdy wszystkie skrypty inicjujące zostaną wykonane, nastąpi nieuniknione: wszystkie nadal działające procesy otrzymają
SIGTERM
sygnał, a po kilku sekundach (2 lub 5) aSIGKILL
. Spowoduje to wyczyszczenie reszty przed wykonaniem połączenia ACPI w celu ponownego uruchomienia lub wyłączenia systemu.Jednym wyjątkiem jest użycie
reboot
polecenia z-f
opcją, spowoduje to pominięcie wykonywania skryptów inicjujących i bezpośrednie ponowne uruchomienie systemu.Lepiej będzie ustalić przyczynę swoich obaw: MySQL nie zamyka się poprawnie.
Często wynika to z ogromnego obciążenia pracą, którą należy wykonać, aby daemon mógł zostać bezpiecznie zamknięty. Kiedyś miałem instancję MySQL z +300.000 tabel, których wyjście zajęło ponad godzinę. Podobne problemy można znaleźć w systemach wykorzystujących ogromne bufory i rzadką dostępność we / wy.
źródło
Pełne zamknięcie Centos 6.x powinno zostać wykonane przy użyciu polecenia jako root:
Spowoduje to próbę zatrzymania wszystkich uruchomionych usług przed płynnym zamknięciem serwera.
Użycie tego polecenia zapobiega również problemom z gniazdem mySQL.
Podobnie w przypadku płynnego restartu:
Możesz przeczytać poprzednią odpowiedź na podobne pytanie tutaj:
https://stackoverflow.com/questions/20407292/centos-another-mysql-daemon-already-running-with-the-same-unix-socket
źródło
shutdown -r now
, a może po prostureboot
.reboot
Polecenie nie posiada-h
opcji.-h
opcja? Nie ma go na stronie podręcznika.reboot
robi bez-h
. Po drugie, o ile mi wiadomo, wcale nie jest tak udokumentowane.reboot
nie ma-h
opcji,shutdown
robi.Udzielając zdalnych instrukcji użytkownikom końcowym i klientom, polecam im, aby użyli
poweroff
do zamknięcia i wyłączenia systemu.Jeśli chcą ciepłego ponownego uruchomienia, sugeruję, aby użyli
reboot
polecenia.Przypuszczam, że można powiedzieć, że wydanie
Ctrl-Alt-Delete
również to osiąga;)źródło
Używam polecenia „init 6”.
init 6 mówi procesowi init, aby zamknął wszystkie odrodzone procesy / demony zapisane w plikach init (w odwrotnej kolejności, w jakiej zostały uruchomione) i na koniec wywołuje polecenie shutdown -r now, aby ponownie uruchomić komputer.
Więcej informacji można znaleźć na to pytanie .
źródło
Mam wrażenie, że może ci się nie spodobać ta odpowiedź, ale ta odpowiedź zawiera pewien wgląd, którego nikt nie bierze pod uwagę. . . Ty piszesz:
Problem w tym, że NIE jest twoją metodą zamykania, jest to oprogramowanie, które nie może poprawnie obsługiwać zamykania; MySql.
JEDYNYM sposobem, w jaki możesz to naprawdę rozwiązać, jest zastąpienie MySql (PostgreSql jest świetnym zamiennikiem) LUB napisanie własnego skryptu zamykającego, który PIERWSZY koduje MySql jak dziecko, a kiedy jest szczęśliwy, że go można zamknąć, TO zamyka system.
... Jako osoba, która specjalizuje się w systemach baz danych od ponad 26 lat, mogę powiedzieć, że dopiero w ostatnim czasie MySql zaczął zbierać informacje na temat kompetencji w najważniejszych aspektach systemów baz danych dla - bezpieczeństwo / integralność danych. Poprzednio zwracali mniejszą uwagę na te aspekty, a większą uwagę na wydajność. Ale jaka jest dobra wydajność w przypadku utraty danych? W NIEKTÓRYCH aplikacjach, takich jak np. Nagrywanie strumieniowe Netflix, w którym momencie oglądasz, absolutna wierność może nie być szczególnie ważna - być może nawet Twoi klienci lubią kopie zapasowe wideo po awarii. Ale w systemie bankowym jest to katastrofa o epickich rozmiarach. Tylko właściciel danych może wiedzieć, co jest dla nich odpowiednie.
źródło