Telinit 1 linux что это

Linux init and telinit commands

Telinit 1 linux что это. Смотреть фото Telinit 1 linux что это. Смотреть картинку Telinit 1 linux что это. Картинка про Telinit 1 linux что это. Фото Telinit 1 linux что это

On Unix-like operating systems, telinit and init provide process control initialization. They are used by the system when it boots.

This page covers the Linux versions of telinit and init.

Description

init is the parent of all processes. Its primary role is to create processes from a script stored in the file /etc/inittab. This file usually has entries which cause init to spawn gettys on each line that users can log in. It also controls autonomous processes required by any particular system.

Syntax

Runlevels

A runlevel is a software configuration of the system that allows only a selected group of processes to exist. The processes spawned by init for each of these runlevels are defined in the /etc/inittab file. Init can be in one of eight runlevels: 0 through 6, and S or s. The runlevel is changed by having a privileged user run telinit, which sends appropriate signals to init, telling it which runlevel to change to.

Runlevels 0, 1, and 6 are reserved. Runlevel 0 is used to halt the system, runlevel 6 is used to reboot the system, and runlevel 1 is used to get the system down into single user mode. Runlevel S is not really meant to be used directly, but more for the scripts that are executed when entering runlevel 1.

Booting

After init is invoked as the last step of the kernel boot sequence, it looks for the file /etc/inittab to see if there is an entry of the type initdefault. The initdefault entry determines the initial runlevel of the system. If there is no such entry (or no /etc/inittab at all), a runlevel must be entered at the system console.

Runlevel S or s bring the system to single user mode and do not require an /etc/inittab file. In single user mode, a root shell is opened on /dev/console.

When entering single user mode, init initializes the consoles stty settings to sane values. «CLocal» mode is set. Hardware speed and handshaking are not changed.

When entering a multi-user mode for the first time, init performs the boot and bootwait entries to allow file systems to be mounted before users can log in. Then all entries matching the runlevel are processed.

When starting a new process, init first checks whether the file /etc/initscript exists. If it does, it uses this script to start the process.

Each time a child terminates, init records the fact and the reason it died in /var/run/utmp and /var/log/wtmp, provided that these files exist.

Changing runlevels

After it has spawned all of the processes specified, init waits for one of its descendant processes to die, for a «powerfail» signal, or until it is signaled by telinit to change the system’s runlevel. When one of the above three conditions occurs, it re-examines the /etc/inittab file. New entries can be added to this file at any time. However, init still waits for one of the above three conditions to occur. To provide for an instantaneous response, the telinit Q (or q) command can wake up init to re-examine the /etc/inittab file.

If init is not in single user mode and receives a powerfail signal (SIGPWR), it reads the file /etc/powerstatus. It then starts a command based on the contents of this file:

If /etc/powerstatus doesn’t exist or contains anything else then the letters F, O or L, init will behave as if it has read the letter F.

Usage of SIGPWR and /etc/powerstatus is discouraged. Someone wanting to interact with init should use the /dev/initctl control channel. More information about this is available by viewing the source code of the sysvinit package.

When init is requested to change the runlevel, it sends the warning signal SIGTERM to all processes that are undefined in the new runlevel. It then waits 5 seconds before forcibly terminating these processes via the SIGKILL signal. Note that init assumes that all these processes (and their descendants) remain in the same process group which init created for them. If any process changes its process group affiliation, it will not receive these signals. Such processes need to be terminated separately.

Environment

Init sets the following environment variables for all its children:

PATH/bin:/usr/bin:/sbin:/usr/sbin
INIT_VERSIONAs the name says. Useful to determine if a script runs directly from init.
RUNLEVELThe current system runlevel.
PREVLEVELThe previous runlevel (especially useful after changing runlevel).
CONSOLEThe system console. This is really inherited from the kernel; however if it’s not set init sets it to /dev/console by default.

Telinit

/sbin/telinit is linked to /sbin/init. It takes a one-character argument and signals init to perform the appropriate action. The following arguments serve as directives to telinit:

0, 1, 2, 3, 4, 5 or 6Tell init to switch to the specified run level.
a, b, cTell init to process only those /etc/inittab file entries having runlevel a, b or c.
Q or qTell init to re-examine the /etc/inittab file.
S or sTell init to switch to single user mode.
U or uTell init to re-execute itself (preserving the state). No re-examining of /etc/inittab file happens. Run level should be one of S, s, 1, 2, 3, 4, or 5, otherwise request would be silently ignored.

telinit can also tell init how long it should wait between sending processes the SIGTERM and SIGKILL signals. The default is 5 seconds, but this can be changed with the -t sec option.

telinit can be invoked only by users with appropriate privileges.

The init binary checks if it’s init or telinit by looking at its process id; the real init‘s process id is always 1. From this it follows that instead of calling telinit one can also use init instead as a shortcut.

Interface

Init listens on a fifo in /dev (/dev/initctl) for messages. Telinit uses this to communicate with init. The interface is not very well documented; to learn more about the interface, users must view the source itself.

Signals

Init reacts to several signals, including:

SIGHUPHas the same effect as telinit q.
SIGUSR1On receipt of this signal, init closes and re-opens its control fifo, /dev/initctl. Useful for bootscripts when /dev is remounted.
SIGINTNormally the kernel sends this signal to init when Ctrl-Alt-Del is pressed. It activates the ctrlaltdel action.
SIGWINCHThe kernel sends this signal when the KeyboardSignal key is hit. It activates the kbrequest action.

Files

/etc/inittab
/etc/initscript
/dev/console
/var/run/utmp
/var/log/wtmp
/dev/initctl

Init bootflags

It is possible to pass several flags to init from the boot monitor (such as LILO). Init accepts the following flags:

-s, S, singleSingle user mode boot. In this mode /etc/inittab is examined and the bootup rc scripts are usually run before the single user mode shell is started.
1-5Runlevel to boot into.
-b, emergencyBoot directly into a single user shell without running any other startup scripts.
-a, autoThe LILO boot loader adds the word «auto» to the command line if it booted the kernel with the default command line (without user intervention). If this is found init sets the «AUTOBOOT» environment variable to «yes«. Note that you cannot use this for any security measures; of course the user could specify «auto» or -a on the command line manually.
-z xxxThe argument to -z is ignored. You can use this to expand the command line a bit, so that it takes some more space on the stack. Init can then manipulate the command line so that ps shows the current runlevel.

telinit can also tell init how long it should wait between sending processes the SIGTERM and SIGKILL signals. The default is 5 seconds, but this can be changed with the -t sec option.

telinit can be invoked only by users with appropriate privileges.

The init binary checks if it’s init or telinit by looking at its process id; the real init’s process id is always 1. From this it follows that instead of calling telinit one can also use init instead as a shortcut.

Related commands

kill — Send a signal to a process, affecting its behavior or killing it.
login — Begin a session on a system.
service — Run a System V init script.
sh — The Bourne shell command interpreter.

Источник

ИТ База знаний

Полезно

— Онлайн генератор устойчивых паролей

— Онлайн калькулятор подсетей

— Руководство администратора FreePBX на русском языке

— Руководство администратора Cisco UCM/CME на русском языке

— Руководство администратора по Linux/Unix

Навигация

Серверные решения

Телефония

FreePBX и Asterisk

Настройка программных телефонов

Корпоративные сети

Протоколы и стандарты

Runlevel в Linux: что это и с чем едят

А какой у тебя уровень?

Уровни выполнения (runlevel) Linux можно представить, как режим, в котором запускается система. Каждый из этих режимов обладают своими процессами, которые включены или выключены в зависимости от запущенного уровня выполнения. С момента загрузки Linux выполняется в одном из режимов, нельзя запускать систему в нескольких режимах, но есть возможность переключаться между уровнями во время работы на компьютере.

Онлайн курс по Linux

Мы собрали концентрат самых востребованных знаний, которые позволят тебе начать карьеру администратора Linux, расширить текущие знания и сделать уверенный шаг к DevOps

Telinit 1 linux что это. Смотреть фото Telinit 1 linux что это. Смотреть картинку Telinit 1 linux что это. Картинка про Telinit 1 linux что это. Фото Telinit 1 linux что это

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

Почему важны уровни доступа

Вы можете годами пользоваться системой Linux, даже не понимая разницу между уровнями доступа, так как эта опция не является часто конфигурируемой.

Тем не менее уровни выполнения Linux дают администраторам повышенный контроль над системой.

Режим, в котором работает система, может быть изменен (как это сделать будет показано далее), как и сервисы, которые выполняются в этом режиме. Это позволяет нам полностью контролировать, к каким службам система будет иметь доступ в данный момент.

Сколько уровней выполнения существует?

В системе Linux есть семь уровней выполнения, которые нумеруются от 0 до 6. Разные дистрибутивы по-разному используют уровни выполнения, так что очень сложно составить список задач, которые выполняет конкретный уровень.

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

Как узнать текущий режим работы?

Чтобы узнать текущий уровень выполнения достаточно ввести команду runlevel в командной строке.

Telinit 1 linux что это. Смотреть фото Telinit 1 linux что это. Смотреть картинку Telinit 1 linux что это. Картинка про Telinit 1 linux что это. Фото Telinit 1 linux что это

На выводе этой команды две цифры. Первая указывает на предыдущий режим работы, а второй на текущий. На скриншоте вместо первой цифры указана буква N, что значит система изначально запускалась и работает в 5 режиме, о чём говорит вторая цифра 5.

Как менять уровень выполнения?

Текущий уровень выполнения можно менять командой «telinit». Ниже приведён пример смены уровня выполнения на CentOS.

Telinit 1 linux что это. Смотреть фото Telinit 1 linux что это. Смотреть картинку Telinit 1 linux что это. Картинка про Telinit 1 linux что это. Фото Telinit 1 linux что это

Следует отметить, что эта операция требует прав привилегированного пользователя. Имейте ввиду, что на системах семейства Debian уровни выполнения работают по-другому. Например, Ubuntu в режиме командой строки запускается с уровнем выполнения 5.

После выполнения команды указанной выше, ваш экран может стать пустым. Это потому, что вы остались на пустом терминале, чтобы вернутся на рабочий терминал нажмите комбинацию клавиш Alt+F1.

Если запустить команду runlevel еще раз, то мы увидим, что текущий уровень выполнения 3, а предыдущий 5.

Telinit 1 linux что это. Смотреть фото Telinit 1 linux что это. Смотреть картинку Telinit 1 linux что это. Картинка про Telinit 1 linux что это. Фото Telinit 1 linux что это

Linux system против runlevels

В последние годы systemd сменила многолетнюю систему уровней доступа (System V init). Фактически он работает по тому же принципу, но использует новые команды, которые в целом используют «runlevel» как «target».

По ходу статьи мы изучим systemd и его команды.

Как поменять уровень выполнения по умолчанию?

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

Именно для таких случаев нужно убедиться, что уровень выполнения по умолчанию 3, а не 5.

В прошлом для этого приходилось редактировать файл /etc/inittab. Вы еще можете увидеть эту практику на некоторых системах. Если вы работаете с ОС, которые давно не обновляются до новых версий, этот путь будет приемлемым.

Telinit 1 linux что это. Смотреть фото Telinit 1 linux что это. Смотреть картинку Telinit 1 linux что это. Картинка про Telinit 1 linux что это. Фото Telinit 1 linux что это

На скриншоте уровнем выполнения по умолчанию установлен 5.

Но большинство систем Linux отказались от файла /etc/inittab в пользу systemd targets и мы рассмотрим разницу между ними по ходу статьи.

Вы можете не найти в своей системе файл /etc/inittab или же файл inittab выведет вам сообщение с советом использовать systemd.

Telinit 1 linux что это. Смотреть фото Telinit 1 linux что это. Смотреть картинку Telinit 1 linux что это. Картинка про Telinit 1 linux что это. Фото Telinit 1 linux что это

Чтобы проверить текущий уровень выполнения по умолчанию введите команду

Telinit 1 linux что это. Смотреть фото Telinit 1 linux что это. Смотреть картинку Telinit 1 linux что это. Картинка про Telinit 1 linux что это. Фото Telinit 1 linux что это

Система вернула нам «graphical.target». Как вы наверное и догадались, это не что иное, как уровень выполнения 5.

Чтобы просмотреть остальные «target» и уровни выполнения, ассоциированные с ними введите команду:

Telinit 1 linux что это. Смотреть фото Telinit 1 linux что это. Смотреть картинку Telinit 1 linux что это. Картинка про Telinit 1 linux что это. Фото Telinit 1 linux что это

Символьные ссылки указывают на то, что systemd работают так же как и runlevel. Итак, что необходимо сделать, чтобы поменять уровень выполнения по умолчанию? Для этого достаточно создать новую символьную ссылку на интересующую нас цель systemd.

Telinit 1 linux что это. Смотреть фото Telinit 1 linux что это. Смотреть картинку Telinit 1 linux что это. Картинка про Telinit 1 linux что это. Фото Telinit 1 linux что это

Данной командой мы поменяли режим запуска системы по умолчанию с уровня выполнения 5, на 3 и при следующей загрузке система выполнить именно этот уровень.

Ключ f указывает на то, что перед созданием новой символьной ссылки целевой файл должен быть удален. Это же самое могли бы сделать командой rm.

Чтобы проверит успешно ли применились изменения достаточно повторно ввести команду «systemctl get-default».

Telinit 1 linux что это. Смотреть фото Telinit 1 linux что это. Смотреть картинку Telinit 1 linux что это. Картинка про Telinit 1 linux что это. Фото Telinit 1 linux что это

Разница между уровнями выполнения 3 и 5

Самыми часто используемыми уровнями выполнения являются уровни 3 и 5. В целом их разница сводится к тому, что 3 это режим командной строки, а 5 режим графического интерфейса.

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

Просмотр список служб конкретного уровня

Telinit 1 linux что это. Смотреть фото Telinit 1 linux что это. Смотреть картинку Telinit 1 linux что это. Картинка про Telinit 1 linux что это. Фото Telinit 1 linux что это

Чтобы проверить, какие службы запускаются во время загрузки системы в режиме графического интерфейса (уровень выполнения 5 для семейства RedHat), нужно запустить следующую команду:

Telinit 1 linux что это. Смотреть фото Telinit 1 linux что это. Смотреть картинку Telinit 1 linux что это. Картинка про Telinit 1 linux что это. Фото Telinit 1 linux что это

Чтобы просмотреть список доступных служб другого уровня, просто замените «graphical.target» на нужную.

Под каким уровнем работает процесс

Если нужно посмотреть по каким уровнем выполнения запущена та или иная служба, можно ввести команду:

Например, чтобы посмотреть какой runlevel использует служба sshd, введите команду:

Telinit 1 linux что это. Смотреть фото Telinit 1 linux что это. Смотреть картинку Telinit 1 linux что это. Картинка про Telinit 1 linux что это. Фото Telinit 1 linux что это

Судя по скриншоту выше, служба sshd запушена под уровнями 2,3 и 4 (multi-user.target)

Меняем уровень запуска приложения

Как было показано выше, демон SSH запущена только на уровнях 2-4. Что если нам нужно, чтобы он работал ещё и на уровне 5? Для этого нужно ввести следующее изменение:

Telinit 1 linux что это. Смотреть фото Telinit 1 linux что это. Смотреть картинку Telinit 1 linux что это. Картинка про Telinit 1 linux что это. Фото Telinit 1 linux что это

Проблемы безопасности с уровнями доступа Linux

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

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

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

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

Каждый уровень выполнения запускает новые службы, большинство из которых работают в фоновом режиме, и вы можете забыть обезопасить их.

Какой уровень выполнения выбрать?

Выбор режима запуска системы полностью зависит от ситуации. В основном используется один из двух режимов: либо runlevel 3, либо runlevel 5.

Если вам удобно работать с командной строкой и вам не нужен графический интерфейс, то уровень выполнения 3 самый подходящий.

Это предотвратит запуск ненужных служб. С другой стороны, если вам хочется работать в десктопном режиме или же вам нужна графическая оболочка для работы какой-то программы, то выберите уровень 5.

Если же нужно запустить систему в режиме обслуживания, то выбирайте уровень 1. В этом режиме в системе будете только вы, так как сетевые службы даже не запущены. Это позволит выполнить обслуживания без сбоя.

В редких случаях появляется необходимость использовать уровень выполнения 4. Это может быть только в том случае, если администратору нужен уровень выполнения для особых задач.

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

Можно ли создано новый уровень на Linux?

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

Целевые уровни расположены по следующему пути:

Если хотите создать свой уровень на основе 5-го уровня выполнения, скопируйте искомую директорию в новую:

Затем в новой директории создайте поддиректорую «wants»:

Затем просто создайте символьную ссылку на дополнительные службы в директории /usr/lib/systemd/system, которые необходимы вашему уровню.

Онлайн курс по Linux

Мы собрали концентрат самых востребованных знаний, которые позволят тебе начать карьеру администратора Linux, расширить текущие знания и сделать уверенный шаг к DevOps

Источник

Команды сопровождения

НАЗВАНИЕ

СИНТАКСИС

ОПИСАНИЕ

Определение уровня выполнения


Процесс init и загрузка системы

Затем процесс init ищет запись initdefault в файле /etc/inittab (см. inittab(4) ). Если запись initdefault :

существует Процесс init обычно использует уровень выполнения, указанный в этой записи, как начальный уровень, на который надо перейти.

не существует (или не существует файла /etc/inittab) Процесс init просит пользователя ввести уровень выполнения с системной консоли.

Если начальный уровень выполнения:

Добавление записей в inittab


Изменения уровня выполнения


Файл /etc/defaults/init

Для перечисленных ниже переменных в файле /etc/default/init можно задать стандартные значения. Например: TZ=US/Pacific

LC_CTYPE Описательная информация о наборе символов.

LC_MESSAGES Язык сообщений.

LC_MONETARY Информация о форматировании денежных величин.

LC_NUMERIC Информация о форматировании чисел.

LC_TIME Информация о формате времени.

LC_ALL Если значение задано, все остальные переменные среды LC_* его наследуют.

Если для службы init отдельной записи нет, будет использована запись для службы » other «.

/etc/inittab контролирует управление процессами, которое осуществляет init

/var/adm/utmpx информация о доступе пользователей и администрировании

/var/adm/wtmpx хронология доступа пользователей и администрирования

/dev/console устройство системной консоли

/etc/default/init переменные среды.

АТРИБУТЫ

Описание следующих атрибутов см. на странице справочного руководства attributes(5):

ТИП АТРИБУТАЗНАЧЕНИЕ АТРИБУТА
Доступен в пакетеSUNWcsu

ССЫЛКИ

Процессы init и telinit может запускать только привилегированный пользователь.

Последнее изменение: 22 февраля 1999 года

Copyleft (no c) 2003 В. Кравчук, OpenXS Initiative, перевод на русский язык

Источник

Изучаем Linux, 101: Уровни выполнения, выключение и перезагрузка

Из этой статьи вы узнаете, как выключить или перезагрузить ваш компьютер Linux, предупреждать пользователей о предстоящем завершении работы операционной системы и переключаться между различными уровнями выполнения. Вы научитесь:

Все примеры этой статьи (кроме отдельно оговоренных) были выполнены в операционной системе Fedora 8 с версией ядра 2.6.26. Примеры процесса upstart выполнялись в операционной системе Fedora 13 с версией ядра 2.6.34 или в системе Ubuntu 10.10 с версией ядра 2.6.35.

Эта статья поможет вам подготовиться к сдаче экзамена LPI 101 на администратора начального уровня (LPIC-1) и содержит материалы цели 101.3 темы 101. Цель имеет вес 3.

Чтобы извлечь наибольшую пользу из наших статей, необходимо обладать базовыми знаниями о Linux и иметь работоспособный компьютер с Linux, на котором можно будет выполнять все встречающиеся команды. Иногда различные версии программ выводят результаты по-разному, поэтому содержимое листингов и рисунков может отличаться от того, что вы увидите на вашем компьютере. В частности, новая подсистема запуска служб и задач Upstart имеет много отличий от традиционного процесса System V init, который может быть знаком многим пользователям (для получения подробной информации обратитесь к разделу Init и Upstart). В этой статье рассматривается традиционный процесс запуска служб System V init, а его отличия от системы upstart будут кратко рассмотрены в конце статьи.

Уровни выполнения определяют, какие задачи могут выполняться в текущем состоянии (или на текущем уровне выполнения) операционной системы Linux. Каждая операционная система Linux поддерживает три основных уровня выполнения и один или несколько дополнительных уровней выполнения. Основные уровни выполнения перечислены в таблице 1.

0Завершение работы компьютера.1Однопользовательский режим (обычно имеет псевдоним s или S )6Перезагрузка компьютера.

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

2Многопользовательский режим без поддержки сети.3Многопользовательский режим с поддержкой сети.5Многопользовательский режим с поддержкой сети и графической оболочки X Window.

В дистрибутиве Slackware для полного запуска системы в среде X Window вместо уровня 5 используется уровень 4. В дистрибутиве Debian (а также в дистрибутивах на его основе, например, в Ubuntu) для многопользовательского режима используется один уровень выполнения, обычно 2. Особенности вашего дистрибутива вы всегда может выяснить в его документации.

При загрузке Linux уровень выполнения по умолчанию определяется значением параметра id: в файле /etc/inittab. В листинге 1 показано обычное значение этого параметра в таких системах, как Fedora 8 или openSUSE 11.2, в которых уровень выполнения 5 используется для запуска оболочки X Window.

Если вы хотите, чтобы по умолчанию ваша система запускалась с другим уровнем выполнения (например, с уровнем 3), то отредактируйте это значение.

Существует несколько способов изменения уровня выполнения. Чтобы выполнить постоянное изменение, можно отредактировать файл /etc/inittab, установив в нем уровень выполнения по умолчанию, как это было показано в предыдущем разделе.

Если необходимо загрузить систему с определенным уровнем выполнения один раз, то вы также можете сделать это. Например, предположим, что вы только что установили новое ядро и хотите добавить несколько модулей после загрузки системы с новым ядром, но до загрузки системы X Window. Для этого вы можете загрузить систему с уровнем выполнения 3. Это делается во время загрузки либо путем редактирования строки ядра (при использовании загрузчика GRUB), либо путем добавления параметра после имени выбранной системы (при использовании LILO). Для указания требуемого уровня выполнения используется одна цифра (в нашем случае 3). Мы приведем пример для системы, в которой используется менеджер загрузки GRUB. Предположим, что в вашем файле /boot/grub/menu.lst содержатся строки, показанные в листинге 2.

Для перевода системы на уровень выполнения 3 дождитесь вывода на экран загрузочного меню, выберите нужную запись и нажмите ‘e’ для ее редактирования. В зависимости от настроек GRUB вам может потребоваться нажать клавишу для вывода загрузочного меню, а также набрать ‘p’ и ввести пароль для получения прав на редактирование. Загрузочное меню GRUB в нашей системе Fedora 8 выглядит так, как показано на рисунке 1.

Рисунок 1. Выбор варианта загрузки в меню GRUB
Telinit 1 linux что это. Смотреть фото Telinit 1 linux что это. Смотреть картинку Telinit 1 linux что это. Картинка про Telinit 1 linux что это. Фото Telinit 1 linux что это

В этом примере вы должны увидеть строки root, kernel и initrd. Переместите курсор на строку, начинающуюся на «kernel» и нажмите ‘e’ для ее редактирования. Меню GRUB в нашей системе Fedora 8 должно принять вид в соответствии с рисунком 2.

Рисунок 2. Выбор записи ядра для изменения параметров
Telinit 1 linux что это. Смотреть фото Telinit 1 linux что это. Смотреть картинку Telinit 1 linux что это. Картинка про Telinit 1 linux что это. Фото Telinit 1 linux что это

Теперь переместите курсор в конец строки и добавьте пробел и цифру ‘3’. При желании вы можете убрать параметр ‘quiet’ или изменить любые другие параметры. Меню GRUB в нашей системе Fedora 8 должно принять вид в соответствии с рисунком 3.

Рисунок 3. Установка уровня выполнения (уровень 3) во время загрузки
Telinit 1 linux что это. Смотреть фото Telinit 1 linux что это. Смотреть картинку Telinit 1 linux что это. Картинка про Telinit 1 linux что это. Фото Telinit 1 linux что это

Наконец, нажмите Enter для сохранения изменений и ‘b’ для загрузки операционной системы.

Примечание. Если вместо GRUB вы используете LILO или GRUB2, то хотя данная процедура будет немного отличаться, основные принципы (редактирование параметров загрузки ядра) будут теми же самыми. Изображенные на наших рисунках экраны GRUB также могут выглядеть немного иначе в других дистрибутивах или на других компьютерах. Как правило, вам всегда доступны подсказки в виде приглашений.

После ввода команды telinit 5 вы увидите несколько быстро сменяющихся сообщений, после чего появится графический экран входа в систему. Откройте окно терминала и убедитесь, что уровень выполнения был изменен, как показано в листинге 4.

Если вы отменили завершение работы, то следует использовать команду wall для отправки сообщений всем пользователям, предупреждающих их о том, что работа системы не будет завершена.

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

Если вы хотите получить дополнительную информацию об опциях этих команд и о том, как они работают, то обратитесь к соответствующим man-страницам.

Возможно, вам будет интересно, почему нажатие Ctrl-Alt-Delete в некоторых операционных системах приводит к перезагрузке, и каким образом устроены все эти уровни выполнения. Вы помните поле id в файле /etc/inittab? Так вот, в файле /etc/inittab есть еще несколько полей, а в файловой системе присутствует набор сценариев инициализации, расположенных в каталогах, таких как rc1.d или rc5.d; цифра означает уровень выполнения, на котором выполняются сценарии из соответствующей директории. В листинге 8 показано полное содержимое файла inittab в нашей операционной системе Fedora 8.

идентификатор id Уникальный идентификатор, состоящий из 1-4 символов. В более ранних версиях идентификатор состоял не более чем из двух символов, поэтому часто используются только два символа. уровни выполнения Список уровней выполнения, на которых выполняется действие, определенное для данного идентификатора. Если уровни выполнения не указаны, то действие выполняется на всех уровнях. действие Одно из возможных действий, которое будет выполняться. процесс Процесс (может быть не указан), который должен быть запущен при выполнении действия, определенного в строке.

Некоторые действия, которые можно указать в файле /etc/inittab, перечислены в таблице 3. О других возможностях inittab вы можете узнать из man-страниц.

respawnПерезапустить процесс, если он завершается. Обычно используется для процессов getty, которые отслеживают входы в систему.waitЗапустить процесс при переключении на заданный уровень выполнения и ждать его завершения перед запуском init.onceЗапустить процесс при переключении на заданный уровень выполнения.initdefaultУказывает уровень выполнения, переключение на который осуществляется после загрузки системы.ctrlaltdelЗапустить назначенный процесс при получении процессом init сигнала SIGINT (например, при нажатии CTRL-ALT-DEL на системной консоли).

В листинге 9 показана запись для комбинации Ctrl-Alt-Delete (фрагмент листинга 8). Итак, теперь вы видите, почему нажатие комбинации Ctrl-Alt-Delete приводит к перезагрузке системы.

В листинге 8 вы могли заметить несколько строк, подобных следующей:

В этом примере init запустит сценарий (или команду) /etc/rc.d/rc с параметром 5 в момент переключения на уровень выполнения 5. Процесс init будет ожидать завершения этой команды, и только потом будут выполняться какие-то другие действия.

Альтернативный процесс инициализации под названием upstart был впервые представлен в 2006 году в дистрибутиве Ubuntu 6.10 (Edgy Eft). На сегодняшний день upstart вытеснил традиционный процесс init в Ubuntu и Fedora и прочих дистрибутивах Linux. Тем не менее, процесс init еще сохранился, а полная мощь upstart возможно, не реализована полностью.

Программа инициализации upstart замещает процесс /sbin/init. Задания upstart определены в директории /etc/init и ее поддиректориях. В настоящее время подсистема upstart обрабатывает файл /etc/inittab и сценарии инициализации System V. В таких дистрибутивах, как последние выпуски Fedora, файл /etc/inittab, вероятно, содержит только запись с идентификатором id для действия initdefault. В новейших дистрибутивах Ubuntu по умолчанию файл /etc/inittab отсутствует, хотя вы можете создать его, если захотите определить уровень выполнения по умолчанию.

Также в подсистеме upstart имеется команда initctl, которая позволяет взаимодействовать с демоном инициализации upstart. Это позволяет запускать или останавливать задания, выводить список заданий, получать их статусы, генерировать события, перезапускать процесс инициализации и так далее. В листинге 11 показано, как использовать initctl для получения списка заданий upstart в операционной системе Fedora 13.

На этом наш обзор уровней выполнения, остановки и перезагрузки операционной системы Linux завершен.

Источник

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *