Différence entre reboot -n et echo b> / proc / sysrq-trigger?


8

Sous Linux (en particulier, les dérivés RHEL CentOS et Fedora), y a-t-il une différence?

echo b > /proc/sysrq-trigger

"Redémarrez immédiatement le système, sans démonter ni synchroniser les systèmes de fichiers", selon Wikipedia.

reboot -n

"Ne synchronisez pas avant de redémarrer ou d'arrêter. Notez que le noyau et les pilotes de stockage peuvent toujours se synchroniser", selon man 8 reboot. Y a-t-il réellement une différence dans ce comportement?


Pourquoi voteriez-vous pour clore cela?
sh-beta

Testez-le et essayez-le;) Mais vraiment, pourquoi faites-vous cela?
ewwhite

Je regrette de ne pas l'avoir vu quand on l'a demandé; Je le migrerais vers l'échange de pile Unix, mais hélas, il est trop vieux pour être migré :( Si c'est toujours un problème auquel vous voulez une réponse, je vous suggère de le publier à nouveau ici: unix.stackexchange.com
Mark Henderson

Réponses:


9

Le /sbin/rebootest un exécutable régulier dans le système de fichiers. Si votre système de fichiers est arrosé (par exemple, blocage du pilote du système de fichiers, blocage du matériel SATA ou blocage du micrologiciel du disque), les modifications apportées pour exécuter correctement cet exécutable sont minimes. D'un autre côté, en supposant que vous avez déjà un shell racine ouvert, echo b > /proc/sysrq-triggervous n'avez besoin d'aucun accès au système de fichiers.


Eh bien, l'écho est également un binaire, non? J'ai rencontré des situations où j'ai vraiment besoin de redémarrer un serveur et en a vraiment besoin pour redémarrer et ne pas rester bloqué à un endroit pendant l'arrêt. Donc, au lieu de risquer de devoir aller au centre de données, il suffit d'émettre echo b> / proc / sysrq-trigger. Mais d'habitude je fais:$ sync; echo b > /proc/sysrq-trigger $ whereis echo echo: /usr/bin/echo /usr/share/man/man1p/echo.1p.gz /usr/share/man/man1/echo.1.gz $ whereis reboot reboot: /usr/sbin/reboot /usr/share/man/man2/reboot.2.gz /usr/share/man/man8/reboot.8.gz
Stefan

echoest généralement un shell intégré, il est donc disponible si vous avez une invite de shell. Oui, /bin/echoexiste aussi, car selon les règles POSIX, toutes les commandes doivent exister dans le chemin mais peuvent être remplacées par une implémentation du shell pour augmenter les performances. Le echoest utilisé si souvent que seuls les shells très très basiques ne l'implémentent pas. (Comparer help echovs. man echo)
Mikko Rantalainen
En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.