J'ai toujours utilisé la commande:
shutdown -r now
Cependant, cela cause parfois des problèmes avec MySQL.
Quel est le moyen le plus gracieux de redémarrer CentOS?
J'ai vu:
reboot
et
halt
Comment puis-je redémarrer doucement la machine?
reboot
est essentiellement un alias deshutdown -r
... alors ... oui.sync: sync;
avant d'exécutershutdown -r
afin que toutes les E / S de fichier soient synchronisées. Je pense que celamysql
Réponses:
Il n'y a pas de meilleur moyen de redémarrer votre serveur en utilisant autre chose que ces commandes.
-r
et une heure spécifique (ou 'now
') redémarrera votre système au lieu de l'arrêter après la séquence d'arrêt.reboot
(> 2.74) seront lancéesshutdown
si elles ne sont pas au niveau d'exécution 0 ou 6.Les distributions modernes couvriront toutes les tâches quelle que soit la commande que vous utilisez. Fondamentalement, ils lancent tous le temps d’arrêt de vos scripts SysV (CentOS <7) ou systemd (CentOS> = 7) (je les appellerai des scripts init pour en faciliter la lecture).
La fermeture à l’aide des scripts d’initialisation arrête pas à pas tous vos services enregistrés sous le niveau d' exécution généralement «S». Les scripts init individuels peuvent avoir un délai d'expiration, comme le script init MySQL dans CentOS. Lorsque l'argument stop est donné et que le démon ne sera pas arrêté assez longtemps, le script s'arrête et se ferme en cas d'échec. Le processus d'arrêt se poursuivra comme si de rien n'était, prenant juste un peu plus longtemps et émettant probablement un avertissement. À la fin, lorsque tous les scripts d'initialisation seront exécutés, l'inévitable se produira: tous les processus en cours d'exécution recevront un
SIGTERM
signal et, après quelques secondes (2 ou 5), aSIGKILL
. Cela va nettoyer le reste avant qu'un appel ACPI ne soit effectué pour réellement redémarrer ou éteindre votre système.Une exception est l'utilisation de la
reboot
commande avec l'-f
option, cela ignorera l'exécution des scripts d'initialisation et redémarrera directement le système.Vous ferez mieux de réparer la cause première de vos inquiétudes: MySQL ne s’arrête pas correctement.
Cela est souvent dû à la charge de travail énorme qui doit être effectuée avant que le démon puisse être quitté en toute sécurité. Une fois, j’avais une instance MySQL avec + 300 000 tables qui mettait plus d’une heure à sortir. Des problèmes similaires peuvent être rencontrés avec les systèmes utilisant des tampons énormes et une disponibilité d'E / S clairsemée.
la source
Un arrêt gracieux de Centos 6.x doit être effectué à l'aide de la commande en tant que root:
Cela tentera d’arrêter tous les services en cours d’exécution avant d’arrêter le serveur normalement.
L'utilisation de cette commande évite également les problèmes de socket mySQL.
De même, pour un redémarrage en douceur:
Vous pouvez lire une réponse précédente sur une question similaire ici:
https://stackoverflow.com/questions/20407292/centos-another-mysql-daemon-already-running-with-the-same-unix-socket
la source
shutdown -r now
, ou peut-être justereboot
. Lareboot
commande n'a pas d'-h
option.-h
option? Ce n'est pas dans la page de manuel.reboot
passe sans-h
. Deuxièmement, pour autant que je sache, ce n'est pas documenté de cette manière.reboot
n'a pas d'-h
option,shutdown
fait.Lorsque je donne des instructions à distance aux utilisateurs finaux et aux clients, je leur ordonne d'utiliser
poweroff
pour éteindre et éteindre le système.S'ils veulent un redémarrage à chaud, je leur suggère d'utiliser la
reboot
commande.Je suppose que l’on pourrait dire que l’ émission
Ctrl-Alt-Delete
accomplit aussi ceci;)la source
J'utilise la commande 'init 6'.
init 6 indique au processus init d'arrêter tous les processus / daemons générés tels qu'ils sont écrits dans les fichiers init (dans l'ordre inverse de leur démarrage) et d'appeler la commande shutdown -r now pour redémarrer l'ordinateur.
Plus d'informations peuvent être trouvées sur cette question .
la source
J'ai le sentiment que cette réponse ne vous plaira peut-être pas, mais CETTE réponse inclut des idées qu'aucun autre ne considère. . . Vous écrivez:
Le problème ici n’EST PAS de votre méthode d’arrêt, c’est le logiciel qui ne peut pas gérer un arrêt correctement; MySql.
La SEULE façon dont vous pouvez vraiment vous occuper est de remplacer MySql (PostgreSql est un excellent remplaçant) OU d'écrire votre propre script de fermeture qui FIRST coddle MySql comme un bébé, et lorsqu'il est heureux d'être arrêté, puis arrête le système.
... En tant que spécialiste des systèmes de base de données depuis plus de 26 ans, je peux vous affirmer que ce n'est que très récemment que MySql a commencé à se mettre en forme en ce qui concerne la compétence dans les aspects les plus importants de ce que sont les systèmes de base de données. pour - la sécurité / intégrité des données. Auparavant, ils accordaient moins d'attention à ces aspects et davantage à la performance. Mais à quoi servent d'excellentes performances si vous perdez des données? Sur CERTAINES applications, telles que, par exemple, l'enregistrement vidéo en streaming Netflix à un moment donné, la fidélité absolue n'est peut-être pas particulièrement importante. Peut-être même que vos clients AIMENT AIMER la sauvegarde vidéo après une défaillance. Mais dans un système bancaire, c'est un désastre aux proportions épiques. Seul le propriétaire des données peut savoir ce qui lui convient.
la source