Разница между перезагрузкой -n и echo b> / proc / sysrq-trigger?


8

На Linux (в частности, на производных RHEL CentOS и Fedora) есть ли разница?

echo b > /proc/sysrq-trigger

«Немедленно перезагрузите систему, не отключая и не синхронизируя файловые системы», - говорится в Википедии.

reboot -n

«Не синхронизируйте перед перезагрузкой или остановкой. Обратите внимание, что ядро ​​и драйверы хранилища могут все еще синхронизироваться», согласно man 8 reboot. Есть ли какая-то разница в этом поведении?


Почему бы вам проголосовать, чтобы закрыть это?
sh-beta

Проверьте это и попробуйте;) Но на самом деле, почему вы это делаете?
ewwhite

Я хотел бы видеть это, когда это спросили; Я бы перенес его на обмен стека Unix, но, увы, он слишком старый, чтобы его можно было перенести :( Если это все еще проблема, на которую вы хотите получить ответ, я бы предложил переслать
Марк Хендерсон

Ответы:


9

Это /sbin/rebootобычный исполняемый файл в файловой системе. Если ваша файловая система подключена (например, зависание драйвера файловой системы, зависание аппаратного обеспечения SATA или зависание прошивки диска), изменения для успешного выполнения этого исполняемого файла невелики. С другой стороны, при условии, что у вас уже открыта корневая оболочка, echo b > /proc/sysrq-triggerдоступ к файловой системе не требуется.


Ну, эхо также является двоичным, верно? Я сталкивался с ситуациями, когда мне действительно нужно перезагрузить сервер, и мне действительно нужно, чтобы он перезагрузился и не застревал в каком-то месте во время выключения. Таким образом, вместо того, чтобы рисковать посещением центра обработки данных, просто введите echo b> / proc / sysrq-trigger. Но обычно я делаю:$ 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
Стефан

echoобычно это встроенная оболочка, поэтому она доступна, если у вас есть приглашение оболочки. Да, /bin/echoтоже существует, потому что по правилам POSIX все команды должны существовать в пути, но могут быть заменены реализацией оболочки для повышения производительности. Он echoиспользуется так часто, что только очень простые оболочки не реализуют его. (Сравните help echoпротив man echo.)
Микко Rantalainen
Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.