Я унаследовал инструкции, которые говорят, что нужно перейти в однопользовательский режим в Solaris, например:
reboot -- -s
У меня вопрос, почему бы просто не сделать:
init 1
Какая разница?
Дэвид, уровни выполнения 1 и s эквивалентны. Основное различие между этими двумя командами заключается в том, что перезагрузка сбрасывает систему, переводя ее в максимально чистое состояние, в то время как "init s" просто переходит к одному пользователю без перезагрузки системы - это, возможно, быстрее, но потенциально может оставлять "мусор" (любые процессы, у которых отсутствует запись в utmpx, могут не завершиться и т. д.).
Есть некоторые незначительные отличия в том, что "init s" не будет иметь никаких записей boot или bootwait в / etc / inittab run, но это маловероятно.
Майкл, вы ошибаетесь, что init не понимает SMF (материал svcadm); оно делает.
xenny, ключом к флагу -s является "-" сразу после команды перезагрузки. Это указывает на то, что все, что следует за «-», должно передаваться непосредственно в загрузчик и ядро - см. Раздел boot_arguments на странице руководства по перезагрузке.
Я считаю, что 'init 1' не установит систему в однопользовательский режим ... вам придется использовать
init s
вместо.
Если это изменение внесено в ваше утверждение, тогда будет большая разница. Команда перезагрузки в основном полностью отключает систему, а затем запускает ее с нуля в однопользовательском режиме.
Простой init X будет запускать сценарии только для перевода системы в запрошенное состояние X. Выбор сценариев запуска / выключения отличается для систем типа UNIX и систем типа Linux. Перезагрузки не происходит (исключения для переходов в состояния 0 и 6, конечно).
reboot перезапустит ядро. init должен перевести машину в однопользовательский режим, убивая процессы по мере перехода в однопользовательский режим без перезапуска ядра.
На моем удобном ящике solaris на странице руководства для / usr / sbin / reboot указаны возможные параметры d l n или q, какая перезагрузка, которая принимает 's', находится на вашем пути первой?
из типа консоли
#init 0
чем он перейдет к приглашению ОК. Оттуда введите
OK> boot -s
он загрузится и запросит пароль root для перехода в режим обслуживания. Введите пароль root. он перейдет в однопользовательский режим. who -r
проверять.