7.2. Смена уровня выполнения после загрузки

Проблема
Где-то в процессе установки системы Linux вы выбрали «загрузку в текстовом
режиме» или «загрузку в графическом режиме». Возможно, вы не до конца пони мали, что означают эти режимы — а может, понимали, но теперь вам нужен гра фический интерфейс вместо скучной текстовой консоли. А может, у вас возникли
проблемы с графическим интерфейсом, и теперь вы хотите перейти на уровень
с минимальным набором служб для диагностики.
Решение
Используйте init. Сначала проверьте текущий уровень выполнения:
# /sbin/runlevel
N 5
«N» означает, что уровень после загрузки не изменялся. Если бы это произош ло, то в выходных данных отображался бы исходный уровень. Для смены уровня
выполнения необходимо обладать правами root:
# /sbin/init 3
Команда останавливает все службы уровня 5 и запускает службы уровня 3.
Происходящее напоминает «частичную перезагрузку». Все пользователи прину дительно выводятся из системы.
При решении особо серьезных проблем иногда требуется переключиться на
уровень 1:
# /sbin/init 10
Команда останавливает X и переводит вас в командный процессор с правами
root, с ограниченным набором служб и без X. В Red Hat после спуска на уровень 1
не нужно вводить пароль root, поэтому не предоставляйте доступ к init sudo-пользо вателям.
Комментарий
В Red Hat, Fedora, Mandrake и Slackware смена уровня выполнения является од ним из способов закрытия сеанса X, так как на уровне 3 загружается текстовая
консоль. Тем не менее это весьма радикальный способ, поскольку он останавли вает и перезапускает все службы и выводит из системы всех текущих пользователей.
Зачем изменять уровень выполнения при помощи init? Возможны разные при чины:
О переход на уровень 1 для диагностики и восстановления;
О остановка и перезапуск системы в ситуации, когда обычные способы не работают;
О перезапуск всех служб или переход на другой набор служб.
«Неправильные» причины:
О переход от сеанса текстовой консоли к сеансу X. Однако команда init должна
выполняться с правами root, а запускать сеанс X с правами root не рекомен дуется: это небезопасно, а любые случайные ошибки могут нарушить рабо тоспособность системы;
О завершение сеанса X.
Как будет показано в разделе 7.4, для перехода между сеансами X и консоль ными сеансами существуют другие, более правильные способы.
Также можно воспользоваться командой telinit, которая представляет собой
жесткую ссылку на init:
$ Is -al /sbin/telinit
Irwxrwxrwx 1 root root 4 Oct 31 07:51 /sbin/telinit -> init
См. также
init(8); раздел 7.4.