Comment arrêter ou redémarrer correctement un serveur Unix / Linux

11

Quelle est la bonne façon de désactiver un serveur Unix / Linux?

De ma recherche sur Google, j'ai appris (espérons-le) ce qui suit:

shutdown : je devrais l'utiliser, avec le paramètre -h pour arrêter, ou le paramètre -r pour redémarrer

arrêt : arrête l'ordinateur (arrête le processeur? cela éteint-il physiquement l'ordinateur?). Je pense que cela appellera l'arrêt sinon à init0, sinon s'arrête juste.

reboot : sinon à init6, appelle l'arrêt, sinon redémarre simplement l'ordinateur.

si tout cela est correct, alors la seule chose que je ne peux pas comprendre, c'est ce que fait exactement «arrêter». Arrête-t-il simplement le processeur sans éteindre physiquement l'ordinateur? Comment "éteindre" l'ordinateur?

Merci

Tony Stark
la source

Réponses:

13

shutdown -h nowarrêtera l'ordinateur avec la plupart des systèmes, mais il est laissé à la mise en œuvre. Utilisez -Ppour éteindre à coup sûr et -Hpour arrêter à coup sûr. C'est la méthode que je recommanderais pour arrêter le système. Il exécutera tous les scripts appropriés.

haltsans -fappellera simplement l'arrêt ci-dessus et il en sera de même reboot, ce ne sont essentiellement que des alias.

Kyle Brandt
la source
Je suis un grand fan de / sbin / shutdown -h (-r) maintenant. utiliser "stop" m'a toujours fait peur.
RateControl
1
Thoreau fait un autre bon point: vous devriez essayer de prendre l'habitude d'appeler des commandes système importantes avec un chemin explicite, (par exemple / sbin / shutdown). Cela pourrait vous sauver si votre système est jamais compromis et que vous n'en êtes pas conscient.
Ryan Fisher
1
mystikphish: D'accord, va adopter cette habitude. Bien qu'il ait un bon point, je ne sais pas si je ferais confiance à ses conseils sur l'informatique en général s'il passe tout son temps dans une cabine d'une pièce sans électricité.
Kyle Brandt
Ce serait un mauvais compromis si cela ne changeait pas l'exécutable dans le chemin qui est enraciné dans vos doigts ...
asjo
@Kyle Brandt, chouette.
Joseph Kern
3

Sous Linux, j'ai toujours utilisé rebootet halt, bien que je connaisse aussi des gens qui trouvent halteffrayant. halt(8)explique en quelque sorte pourquoi:

Sous les anciennes versions de sysvinit, le redémarrage et l'arrêt ne devraient jamais être appelés directement. À partir de la version 2.74 lors de l'arrêt et du redémarrage, appelez shutdown (8) si le système n'est pas au niveau d'exécution 0 ou 6. Cela signifie que si l'arrêt ou le redémarrage ne peut pas trouver le niveau d'exécution actuel (par exemple, lorsque / var / run / utmp n'a pas correctement initialisé) l’arrêt sera appelé, ce qui n’est peut-être pas ce que vous voulez. Utilisez l'indicateur -f si vous souhaitez effectuer un arrêt ou un redémarrage brutal.

sysvinit 2.74 est daté du 17 mars 1998 21:53. :)

Concernant votre question sur la mise hors tension, vous pouvez utiliser poweroffou halt -p. La plupart des systèmes Linux récents semblent s'éteindre tout simplement haltou shutdown -hégalement.

Marie Fischer
la source
Solaris est toujours dans la foule où «arrêter» fait des choses effrayantes.
Karl Katzke
3

J'utilise halt- moins de paramètres à retenir.

Quelqu'un a développé un Molly Guard virtuel pour s'assurer que l'on n'arrête pas le mauvais serveur par accident. Cela m'a sauvé à quelques reprises. Il est intégré à molly-guardUbuntu.

Morten Siebuhr
la source
1
Au cas où quelqu'un d'autre se demanderait comment fonctionne Molly-Guard, voici un exemple: guillaume.segu.in/blog/home/118/…
Marie Fischer
1

J'utilise généralement (en tant qu'utilisateur root bien sûr):

 init 0

pour mettre le système hors tension. Cela exécute un script de délabrement.

 init 6

pour faire tomber le système et le faire redémarrer automatiquement. Cela effectue également des scripts de délimitation.

mdpc
la source
1
halt exécuterait également tous les scripts de début avec le paramètre "stop".
hayalci
1
Sur quel système ne s'arrête-t-il pas bien?
asjo
2
Sur la base des deux commentaires ci-dessus, j'ai modifié ma note pour supprimer mon commentaire d'arrêt. Cependant, j'ai vérifié sur FreeBSD 7.2 et Solaris 10 5/2009 x86 que l'exécution de la commande d'arrêt simple sur ces deux systèmes n'engagera PAS la séquence de délimitation standard. Cependant, sur Centos 5.3, OpenSUSe 11.1 et Fedora 11, la commande d'arrêt enclenche la séquence de délimitation standard et agit essentiellement comme init 0. FYI ....
mdpc
0

À noter ici:

Solaris a besoin de «shutdown -y -i5 -g0» pour s'arrêter, ou «shutdown -y -i6 -g0» pour redémarrer. Halt ou Reboot on Solaris ne doit être utilisé que s'il est acceptable de ne pas donner d'avertissement ou de délai de grâce avant de commencer à arrêter les choses ... cela peut en quelque sorte faire des ravages avec les systèmes de disque si vous ne les démontez pas avant de vous arrêter, y 'connaître?

Il est préférable d'adopter les procédures qui conviennent le mieux aux systèmes d'exploitation que vous touchez quotidiennement, afin de ne pas accidentellement visser quelque chose de mal à 2 heures du matin avec les doigts sur le pilote automatique.

Par exemple, ne tapez jamais 'killall' dans solaris, alors que c'est une commande assez courante sous linux. 'pkill' fonctionne cependant de la même façon sur les deux.

Karl Katzke
la source
0

Pour l'arrêter immédiatement, tapez:

shutdown -h now 

et pour l'arrêter immédiatement et redémarrer le type:

shutdown -r now
user3571127
la source
1
Je trouve que c'est la meilleure réponse, je ne sais pas pourquoi a voté contre.
Basil A