Vraag De beste manier om CentOS opnieuw netjes te herstarten?


Ik heb altijd het commando gebruikt:

shutdown -r now

Soms veroorzaakt dit echter MySQL-problemen.

Wat is de meest elegante manier om CentOS opnieuw op te starten?

Ik heb gezien:

reboot

en

halt

Hoe kan ik de machine voorzichtig opnieuw opstarten?


64
2017-08-15 01:48


oorsprong


reboot is in wezen een alias voor shutdown -r ...dus ja. - Nathan C
Heeft mijn bericht uw vraag beantwoord of moet u nog iets anders weten? - Joffrey
Ik kan hier nog geen commentaar geven, maar ik wilde hier een waarschuwing plaatsen over het opnieuw opstarten. Als de instantie zich op Amazon EC2 bevindt, zal reboot -h nu de instantie blokkeren, dus doe dit nooit. In plaats daarvan, als je moet afsluiten of opnieuw opstarten, doe het dan via de online interface van Amazon, niet de shell. Als je je instantie versmelt, kun je het stoppen, het volume verwijderen, een aparte instantie maken en het volume eraan toevoegen, zonder het eerste volume los te maken dat bij de nieuwe instantie hoort. Dan moet je in de nieuwe instantie sshennen, het oude volume koppelen en je bestanden eruit halen. - kloddant
eigenlijk wil je rennen sync: sync; voor het hardlopen shutdown -r dus alle bestands-I / O worden gesynchroniseerd. Ik vermoed dat dit ook het probleem zal oplossen mysql - user3629249


antwoorden:


Er is geen betere manier om uw server opnieuw op te starten door iets anders te gebruiken dan die commando's.

  • stilgelegd is de meest gebruikelijke manier om uw systeem te stoppen.
  • reboot is een wrapper round shutdown die het onderhoud van de harde schijf doet (synchroniseren en / of in de standby-modus zetten en niet echt relevant).
  • Nieuwe versies van reboot (> 2,74) zal initiëren shutdown zo niet op runlevel 0 of 6.
  • De meeste init scripts bellen halte om in te loggen utmp.

Bij moderne distributies worden alle taken afgedekt, ongeacht de opdracht die u gebruikt. In feite initiëren ze allemaal de shutdownlooptijd van je SysV (CentOS <7) of systemd (CentOS> = 7) scripts (ik zal ze init scripts noemen om het lezen te vergemakkelijken).

Als u het programma afsluit met behulp van init-scripts, stopt u stap voor stap met het opnemen van alle services die u hebt geregistreerd runlevel 'S'. Individuele init-scripts kunnen een time-out hebben, zoals het MySQL init-script in CentOS. Wanneer het stop-argument wordt gegeven en de daemon niet binnen een redelijke tijd wordt afgesloten, zal het script stoppen en een mislukking opgeven. Het afsluitproces gaat door alsof er niets aan de hand was, het duurt alleen iets langer en drukt waarschijnlijk een waarschuwing af. Aan het einde, wanneer alle init-scripts worden uitgevoerd, zal het onvermijdelijke gebeuren: alle processen die nog worden uitgevoerd, krijgen een SIGTERM  signaal en, na een paar seconden (2 of 5), a SIGKILL. Hiermee wordt de rest opgeruimd vóór een ACPI oproep is gedaan om je systeem echt opnieuw op te starten of af te sluiten.

Een uitzondering is het gebruik van de reboot commando met de -f optie, zal dit het uitvoeren van init scripts overslaan en zal het systeem direct opnieuw opstarten.

Je zult er beter aan doen de oorzaak van je zorgen te herstellen: MySQL sluit niet goed af.

Vaak is dit te wijten aan de enorme hoeveelheid werk die moet worden gedaan voordat de daemon veilig kan worden verlaten. Ik had ooit een MySQL-instantie met +300.000 tabellen die meer dan een uur duurden om te verlaten. Soortgelijke problemen kunnen worden gevonden met systemen die gebruikmaken van enorme buffers en schaarse I / O-beschikbaarheid.


76
2017-08-23 21:27



+1 Dit is correct, voor realz !! - ewwhite
Ugh, haat antwoorden die heel diepgaand zijn en dan nooit simpelweg zeggen "dit is de weg". Dus is het "shutdown -r now" of wat is de juiste reboot-regel? - jterm
@jterm, Ugh, haat antwoorden die te oppervlakkig zijn en alleen 'dit is de weg' zeggen zonder me op te voeden in wat ik vraag en mogelijke oplossingen te begrijpen. - Joffrey
@Joffrey Ditto. Er zijn meerdere manieren om de vraag slecht te beantwoorden. - jterm
Dit is een heel slecht antwoord! - Rauli Rajande


Een sierlijke shutdown van Centos 6.x moet worden gedaan door de opdracht als root te gebruiken:

shutdown -h now

Hiermee wordt geprobeerd alle actieve services te stoppen voordat de server netjes wordt afgesloten.

Het gebruik van deze opdracht voorkomt ook problemen met mySQL-socket.

Evenzo voor een sierlijke herstart:

reboot -h now

U kunt hier een eerder antwoord over een soortgelijke vraag lezen:

https://stackoverflow.com/questions/20407292/centos-another-mysql-daemon-already-running-with-the-same-unix-socket


24
2017-09-04 21:26



ik denk dat je bedoelt shutdown -r now, of misschien gewoon reboot. De reboot opdracht heeft geen -h keuze. - Michael Hampton♦
Hallo Michael, Centos 6.x heeft inderdaad de mogelijkheid om services te stoppen voordat opnieuw wordt opgestart. "shutdown -h now" is een sierlijke shutdown en "reboot -h now" is een sierlijke herstart. Probeer het op uw Centos-server ... - GeckoSEO
Oh? En wat doet dit -h optie doen? Het staat niet op de man-pagina. - Michael Hampton♦
Werkelijk? Heb je hier documentatie voor? Omdat, ten eerste, dat is wat reboot doet zonder  -h. Ten tweede is het helemaal niet zo gedocumenteerd, voor zover ik weet. - Michael Hampton♦
om te verduidelijken, toen shutdown ZONDER -h werd gebruikt, hadden we constant problemen met de sockets voor mySQL. Sinds het gebruik van -h is het probleem nooit meer teruggekomen. - GeckoSEO


Bij het geven van instructies op afstand aan eindgebruikers en klanten, instrueer ik ze te gebruiken poweroff uitschakelen en het systeem uitschakelen.

Als ze een warme herstart willen, raad ik aan dat ze de reboot commando.

Ik veronderstel dat je dat zou kunnen zeggen uitgevende Ctrl-Alt-Delete doet dit ook;)


2
2017-08-15 02:04



Ik ben het niet eens met dit antwoord. opnieuw opstarten en afsluiten (Ctrl-Alt-Delete) is krachtig en kan in sommige omgevingen, zoals die met mySQL, een socket "lock" veroorzaken, wat vervolgens een nieuwe socket vereist, of de bestaande socket verwijderen / verplaatsen voordat een nieuwe een. - GeckoSEO
@GeckoSEO Het was een grappige suggestie die verwijst naar de gevaar dat Ctrl-Alt-Delete wordt ingeschakeld op Linux-servers. - ewwhite
mijn reactie aan de andere kant was niet grappig, ik probeerde eenvoudig het antwoord op te helderen voor diegenen die deze vraag proberen op te lossen. Zie mijn eerdere antwoord, ik hoop dat het helpt. - GeckoSEO


Ik gebruik het commando 'init 6'.

init 6 vertelt het init-proces om alle voortgebrachte processen / daemons af te sluiten zoals geschreven in de init-bestanden (in de omgekeerde volgorde die ze begonnen) en ten slotte het commando shutdown -r now aan te roepen om de machine opnieuw op te starten.

Meer informatie is te vinden op deze vraag.


2
2017-08-26 14:35





Ik heb het gevoel dat je dit antwoord misschien niet leuk vindt, maar DIT antwoord bevat enig inzicht dat geen van de anderen overweegt. . . Jij schrijft:

Ik heb altijd het commando gebruikt:

shutdown -r nu

Soms veroorzaakt dit echter MySQL-problemen.

Het probleem hier is NIET de methode van afsluiten, is het stukje software dat niet goed kan worden afgesloten; MySql.

De ENIGE manier waarop je dit echt kunt aanpakken, is MySQL vervangen (PostgreSql is een geweldige vervanging) OF schrijf je eigen shutdown-script dat EERST codeert als MySql als een baby, en wanneer het blij is om te worden afgesloten, schakelt DAN het systeem uit.

... Als een persoon die zich al meer dan 26 jaar in databasesystemen heeft gespecialiseerd, kan ik u vertellen dat MySql pas recent is begonnen zijn act te doen met betrekking tot competentie bij de belangrijkste facetten van welke databasesystemen voor - gegevensbeveiliging / integriteit. Voorheen hebben ze minder aandacht besteed aan deze aspecten en meer aandacht voor prestaties. Maar wat heb je aan goede prestaties als je gegevens verliest? Op SOMMIGE applicaties, zoals bijvoorbeeld Netflix streaming video-opnames op welk punt je bekijkt, is absolute trouw misschien niet zo belangrijk - misschien zelfs, jouw klanten ALS de video die een back-up maakt na een fout. Maar in een banksysteem is het een ramp met epische proporties. Alleen de eigenaar van de gegevens kan weten wat goed voor hen is.


0
2018-04-16 00:31



Vervang mysql alleen omdat problemen opnieuw opstarten of afsluiten van het systeem? En het laatste deel van de oplossing draagt ​​niets bij aan het probleem van de persoon die de vraag stelt op te lossen - ftrujillo