Назад | Перейти на главную страницу

Разница в поведении перезагрузки

У меня 2 машины под управлением linux.

На одном компьютере команда перезагрузки - это исполняемый файл, обычно встречающийся во всех дистрибутивах Linux.

На втором компьютере команда перезагрузки представляет собой сценарий оболочки, настроенный с использованием некоторых других команд аппаратных средств для перезагрузки системы.

Одно различие в поведении двух машин заключается в том, что когда я выполняю reboot на первом компьютере, отображается другое приглашение оболочки, а затем выполняется перезагрузка.

Но в случае второй машины она перезагружается без отображения приглашения оболочки. Я ожидаю, что вторая машина будет вести себя так же, как первая, когда будет дана команда перезагрузки.

Сейчас я анализирую исходный код shutdown.c и halt.c обычно встречается в дистрибутивах Linux, так что я могу найти реализацию, которая создает propmt оболочки при перезагрузке, и использовать ее в сценарии оболочки на второй машине.

Пожалуйста, дайте мне несколько указателей, с чего мне следует начать поиск реализации.

Спасибо

Я ожидаю, что программа, которая возвращает вас в командную строку, на самом деле ничего не делает, а скорее взаимодействует с вашим демоном инициализации (sysvinit, upstart или что-то еще, что работает как процесс 1) и просит его выключить систему. Другой сценарий - это обычный сценарий.

Я предполагаю, что программа дважды уходит в фоновый режим.

Использовать shutdown -r вместо. Исторически он использовался в различных союзах, поэтому я считаю, что его интерфейс и поведение более известны и предсказуемы.

Заключительные системные вызовы для перезагрузки машины выдает ядро ​​Linux, а не пользовательская среда. Вероятно, ядро ​​внутренне использует IPMI для перезагрузки машины. В системах используются разные подходы к выключению и перезагрузке. Я встречал несколько, которые требуют, чтобы вы нажали на RTC, чтобы перезагрузить систему, и это именно то, что ядро ​​делает для этой машины.

Какая у машины архитектура? ARM, MIPS, прочее? WindRiver - это разработчик VxWorks, если я не ошибаюсь. Вероятно, вы можете позвонить в их службу поддержки и узнать, смогут ли они вам помочь.