Il n'y a pas de meilleur moyen de redémarrer votre serveur en utilisant autre chose que ces commandes.
-
arrêt est le moyen le plus courant d'arrêter votre système. En ajoutant l'argument
-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.
-
redémarrer est une enveloppe autour de l'arrêt qui fait un peu de maintenance du disque dur (synchronisation et/ou mise en mode veille et pas vraiment pertinent).
- Les nouvelles versions de
reboot
(>2,74) seront à l'origine shutdown
s'il n'est pas au niveau d'exécution 0 ou 6.
- La plupart des init scripts appellent arrêt pour faire une connexion utmp .
Les distributions modernes couvriront toutes les tâches, quelle que soit la commande que vous utilisez. Fondamentalement, elles lancent toutes l'exécution de l'arrêt de votre système d'exploitation. SysV (CentOS <7) ou systemd (CentOS >=7) scripts (Je les appellerai init scripts pour faciliter la lecture).
Arrêter en utilisant init scripts étape par étape arrêter tous vos services enregistrés sous habituellement. niveau d'exécution 'S'. Les init scripts individuels peuvent avoir un délai d'attente, comme l'init MySQL scripts dans CentOS. Lorsque l'argument stop est donné et que le démon ne sera pas arrêté dans un laps de temps raisonnable, le scripts s'arrêtera et sortira en donnant un échec. Le processus d'arrêt continuera comme si de rien n'était, prenant seulement un peu plus de temps et imprimant probablement un avertissement. A la fin, lorsque tous les scripts d'init seront exécutés, l'inévitable se produira : tous les processus encore en cours d'exécution obtiendront un SIGTERM
signal et, après quelques secondes (2 ou 5), une SIGKILL
. Cela nettoiera le reste avant qu'un ACPI L'appel est effectué pour redémarrer ou arrêter réellement votre système.
Une exception est l'utilisation de la reboot
avec la commande -f
cela évitera d'exécuter les scripts d'init scripts et redémarrera directement le système.
Vous feriez mieux de vous attaquer à la cause première de vos soucis : MySQL ne s'arrête pas correctement.
Cela est souvent dû à l'énorme charge de travail qui doit être effectuée avant que le démon puisse être quitté en toute sécurité. J'ai eu une fois une instance MySQL avec +300.000 tables qui a pris plus d'une heure pour sortir. Des problèmes similaires peuvent être rencontrés avec des systèmes utilisant d'énormes tampons et une disponibilité d'E/S éparse.
4 votes
reboot
est essentiellement un alias deshutdown -r
...donc...ouais.0 votes
Mon post a-t-il répondu à votre question, ou avez-vous besoin de savoir autre chose ?
0 votes
Je ne peux pas encore commenter ici, mais je voulais mettre en garde contre le redémarrage. Si l'instance est sur Amazon EC2, faire reboot -h maintenant bridera l'instance, donc ne le faites jamais. Au lieu de cela, si vous devez arrêter ou redémarrer, faites-le via l'interface en ligne d'Amazon, pas via le Shell. Si vous briquez votre instance, vous pouvez l'arrêter, détacher le volume, créer une instance distincte et y attacher le volume, sans détacher le premier volume fourni avec la nouvelle instance. Vous devrez alors vous connecter à la nouvelle instance, monter l'ancien volume et récupérer vos fichiers.
0 votes
En fait, vous voulez exécuter
sync: sync;
avant d'exécutershutdown -r
pour que toutes les entrées/sorties de fichiers soient synchronisées. Je pense que cela résoudra également le problème de l'utilisation demysql