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

Prerequisite Linux Booting A run level is a state of init and the whole system that defines what system services are operating. Run levels are identified by numbers. Some system administrators use run levels to define which subsystems are working e.g. whether X is running whether the network is

Prerequisite : Linux Booting
A run level is a state of init and the whole system that defines what system services are operating. Run levels are identified by numbers. Some system administrators use run levels to define which subsystems are working, e.g., whether X is running, whether the network is operational, and so on.

  • Whenever a LINUX system boots, firstly the init process is started which is actually responsible for running other start scripts which mainly involves initialization of you hardware, bringing up the network, starting the graphical interface.
  • Now, the init first finds the default runlevel of the system so that it could run the start scripts corresponding to the default run level.
  • A runlevel can simply be thought of as the state your system enters like if a system is in a single-user mode it will have a runlevel 1 while if the system is in a multi-user mode it will have a runlevel 5.
  • A runlevel in other words can be defined as a preset single digit integer for defining the operating state of your LINUX or UNIX-based operating system. Each runlevel designates a different system configuration and allows access to different combination of processes.

The important thing to note here is that there are differences in the runlevels according to the operating system. The standard LINUX kernel supports these seven different runlevels :

  • 0 – System halt i.e the system can be safely powered off with no activity.
  • 1 – Single user mode.
  • 2 – Multiple user mode with no NFS(network file system).
  • 3 – Multiple user mode under the command line interface and not under the graphical user interface.
  • 4 – User-definable.
  • 5 – Multiple user mode under GUI (graphical user interface) and this is the standard runlevel for most of the LINUX based systems.
  • 6 – Reboot which is used to restart the system.

By default most of the LINUX based system boots to runlevel 3 or runlevel 5.
In addition to the standard runlevels, users can modify the preset runlevels or even create new ones according to the requirement. Runlevels 2 and 4 are used for user defined runlevels and runlevel 0 and 6 are used for halting and rebooting the system.

Obviously the start scripts for each run level will be different performing different tasks. These start scripts corresponding to each run level can be found in special files present under rc sub directories.
At /etc/rc.d directory there will be either a set of files named rc.0, rc.1, rc.2, rc.3, rc.4, rc.5 and rc.6, or a set of directories named rc0.d, rc1.d, rc2.d, rc3.d, rc4.d, rc5.d and rc6.d.
For example, run level 1 will have its start script either in file /etc/rc.d/rc.1 or any files in the directory /etc/rc.d/rc1.d.

Changing runlevel

init is the program responsible for altering the run level which can be called using telinit command.

For example, to change a runlevel from 3 to runlevel 5 which will actually allow the GUI to be started in multi-user mode the telinit command can be used as :

/*using telinit to change
runlevel from 3 to 5*/

telinit 5

NOTE : The changing of runlevels is a task for the super user and not the normal user that’s why it is necessary to be logged in as super user for the successful execution of the above telinit command or you can use sudo command as :

// using sudo to execute telinit
sudo telinit 5

The default runlevel for a system is specified in /etc/initab file which will have an entry id : 5 : initdefault if the default runlevel is set to 5 or will have an entry id : 3 : initdefault if the default runlevel is set to 3.

Need for changing the runlevel

  • There can be a situation when you may find trouble in logging in in case you don’t remember the password or because of the corrupted /etc/passwd file (have all the user names and passwords), in this case the problem can be solved by booting into a single user mode i.e runlevel 1.
  • You can easily halt the system by changing the runlevel to 0 by using telinit 0.

Prerequisite : Linux Booting
A run level is a state of init and the whole system that defines what system services are operating. Run levels are identified by numbers. Some system administrators use run levels to define which subsystems are working, e.g., whether X is running, whether the network is operational, and so on.

  • Whenever a LINUX system boots, firstly the init process is started which is actually responsible for running other start scripts which mainly involves initialization of you hardware, bringing up the network, starting the graphical interface.
  • Now, the init first finds the default runlevel of the system so that it could run the start scripts corresponding to the default run level.
  • A runlevel can simply be thought of as the state your system enters like if a system is in a single-user mode it will have a runlevel 1 while if the system is in a multi-user mode it will have a runlevel 5.
  • A runlevel in other words can be defined as a preset single digit integer for defining the operating state of your LINUX or UNIX-based operating system. Each runlevel designates a different system configuration and allows access to different combination of processes.

The important thing to note here is that there are differences in the runlevels according to the operating system. The standard LINUX kernel supports these seven different runlevels :

  • 0 – System halt i.e the system can be safely powered off with no activity.
  • 1 – Single user mode.
  • 2 – Multiple user mode with no NFS(network file system).
  • 3 – Multiple user mode under the command line interface and not under the graphical user interface.
  • 4 – User-definable.
  • 5 – Multiple user mode under GUI (graphical user interface) and this is the standard runlevel for most of the LINUX based systems.
  • 6 – Reboot which is used to restart the system.

By default most of the LINUX based system boots to runlevel 3 or runlevel 5.
In addition to the standard runlevels, users can modify the preset runlevels or even create new ones according to the requirement. Runlevels 2 and 4 are used for user defined runlevels and runlevel 0 and 6 are used for halting and rebooting the system.

Obviously the start scripts for each run level will be different performing different tasks. These start scripts corresponding to each run level can be found in special files present under rc sub directories.
At /etc/rc.d directory there will be either a set of files named rc.0, rc.1, rc.2, rc.3, rc.4, rc.5 and rc.6, or a set of directories named rc0.d, rc1.d, rc2.d, rc3.d, rc4.d, rc5.d and rc6.d.
For example, run level 1 will have its start script either in file /etc/rc.d/rc.1 or any files in the directory /etc/rc.d/rc1.d.

Changing runlevel

init is the program responsible for altering the run level which can be called using telinit command.

For example, to change a runlevel from 3 to runlevel 5 which will actually allow the GUI to be started in multi-user mode the telinit command can be used as :

/*using telinit to change
runlevel from 3 to 5*/

telinit 5

NOTE : The changing of runlevels is a task for the super user and not the normal user that’s why it is necessary to be logged in as super user for the successful execution of the above telinit command or you can use sudo command as :

// using sudo to execute telinit
sudo telinit 5

The default runlevel for a system is specified in /etc/initab file which will have an entry id : 5 : initdefault if the default runlevel is set to 5 or will have an entry id : 3 : initdefault if the default runlevel is set to 3.

Need for changing the runlevel

  • There can be a situation when you may find trouble in logging in in case you don’t remember the password or because of the corrupted /etc/passwd file (have all the user names and passwords), in this case the problem can be solved by booting into a single user mode i.e runlevel 1.
  • You can easily halt the system by changing the runlevel to 0 by using telinit 0.

Linux изменение уровней запуска

  1. Linux Узнать текущий уровень выполнения команды. Введите следующую команду: $ who -r. …
  2. Команда изменения уровня выполнения в Linux. Используйте команду init, чтобы изменить уровни рун: # init 1.
  3. Уровень выполнения и его использование. Init является родительским для всех процессов с PID # 1.

Как навсегда изменить уровень выполнения в Linux?

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

Как мне изменить уровень запуска grub?

E. 7. Изменение уровней выполнения во время загрузки

  1. Когда во время загрузки появляется экран обхода меню GRUB, нажмите любую клавишу, чтобы войти в меню GRUB (в течение первых трех секунд).
  2. Нажмите клавишу a, чтобы добавить к команде ядра.
  3. Добавлять в конце строки параметров загрузки для загрузки на желаемый уровень выполнения.

Как мне найти уровень запуска по умолчанию в Linux?

Использование файла / etc / inittab: Уровень запуска по умолчанию для системы указан в файле / etc / inittab для SysVinit System. С использованием / и т. д. / systemd / система / по умолчанию. целевой файл: Уровень запуска по умолчанию для системы указан в файле «/ etc / systemd / system / default. target »для systemd System.

Что такое уровень выполнения 4 в Linux?

Уровень выполнения — это режим работы в операционных системах компьютера, который реализует инициализацию в стиле V Unix System. … Например, уровень запуска 4 может быть многопользовательская конфигурация без сервера с графическим интерфейсом пользователя в одном дистрибутиве, и ничего по другому.

Где идентификатор процесса в Linux?

Идентификатор текущего процесса предоставляется системным вызовом getpid () или как переменная $$ в оболочке. Идентификатор родительского процесса можно получить с помощью системного вызова getppid (). В Linux максимальный идентификатор процесса задается псевдо-файл / proc / sys / kernel / pid_max.

Как изменить уровень запуска в Linux 7?

Изменение уровня запуска по умолчанию

Уровень запуска по умолчанию можно изменить с помощью используя опцию set-default. Чтобы получить текущее значение по умолчанию, вы можете использовать параметр get-default. Уровень запуска по умолчанию в systemd также можно установить с помощью описанного ниже метода (хотя это не рекомендуется).

Как установить цель по умолчанию в Linux?

Процедура 7.4. Установка графического входа в систему по умолчанию

  1. Откройте приглашение оболочки. Если вы находитесь в своей учетной записи, станьте пользователем root, набрав команду su.
  2. Измените цель по умолчанию на graphical.target. Для этого выполните следующую команду: # systemctl set-default graphical.target.

Как изменить уровень запуска в rhel8?

Вы можете переключить текущий уровень запуска с помощью systemctl изолировать target> команда в сеансе. Для вызова многопользовательского режима. целевой / графический.

Какие уровни запуска в Linux?

Уровень выполнения рабочее состояние на Операционная система на основе Unix и Unix, которая предустановлена ​​в системе на основе Linux.

уровень выполнения.

Уровень выполнения 0 выключает систему
Уровень выполнения 1 однопользовательский режим
Уровень выполнения 2 многопользовательский режим без сети
Уровень выполнения 3 многопользовательский режим с сетью
Уровень выполнения 4 определяемый пользователем

Как перезапустить текстовый режим в Ubuntu уровня запуска 3?

Так что работать в многопользовательском режиме. target или на уровне запуска 3 вам необходимо переключиться на текстовую консоль TTY, например, с помощью нажатие Ctrl + Alt + F1 для TTY1. Вы вернетесь к рабочему столу (TTY7) позже, после того, как вернетесь к графическому интерфейсу. target или runlevel 5, нажав Ctrl + Alt + F7 соответственно.

Уровень запуска — это программная конфигурация системы, которая позволяет запускать только выбранную группу процессов на определенном этапе.

Обычная последовательность загрузки в Linux состоит из нескольких этапов:

Этапы загрузки системы в Linux ОС

Init процесс:

  • Завершает процедуру загрузки.
  • Имеет процесс с номером 1 (ID1).
  • Запускает системные процессы (как описано в /etc/inittab).
  • Не является частью ядра, он принадлежит пользовательскому пространству (/sbin/init).
  • Никогда не умирает: он управляет жизненным циклом операционной системы (например -перезагрузка, выключение).

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

  • sysvinit : традиционная программа инициализации linux — Система инициализации SysVinit
  • upstart : используемый большинством дистрибутивов Linux (не используется уже).
  • systemd : Можно прочитать более подробно тут — Система инициализации в Unix/Linux
  • busybox : Используется для небольших встроенных систем.

При построении, эти проекты генерируют процесс init и набор общих инструментов, таких как telinit или initctl.

При загрузке init проверяет файл конфигурации inittab для параметра runlevel. Это значение изменяется от 0 до 6, и для каждого из них выполняется определенный набор действий. Данные уровни можно переопределить, но об этом немного позже.

Сейчас, init программа может юзать 10 уровней инициализации, но больше всего используются следующии сем:

  • 0 — Используется для выключение ОС.
  • 1 — Однопользовательский режим (single user mode). Служит для различных административных действий по восстановлению системы. На 1-м уровне выполнения,  ОС сконфигурирована полностью, но при этом, не запущен ни один из сервисов, а из юзеров — работает только root-юзер.
  • 2 — Данный левел не юзается, но настроен как уровень выполнения 3. В rpm ОС, даный уровень сконфигурирован как уровень 3, но без поддержки сетевых файловых систем. В deb ОС используется как многопользовательский режим.
  • 3 — Многопользовательский режим (multiuser mode). Нормальный режим работы сервера.
  • 4 — В Slackware Linux настроен для графического входа в ОС. В rpm — не сконфигурирован вообще.
  • 5 — В deb и rpm системах, данный уровень предназначен для графического входа в систему, но Slackware Linux не сконфигурирован вообще.
  • 6 — Используется для перезагрузки ОС.

-=== INIT ===-

В зависимости от установки уровня инициализации по умолчанию система будет выполнять программы из одной из следующих папок (касательно Linux, но Unix — не уверен. На Mac OS X — нет таких папок):

  • Запуск на 0 уровне: /etc/rc.d/rc0.d
  • Запуск на 1 уровне: /etc/rc.d/rc1.d
  • Запуск на 2 уровне: /etc/rc.d/rc2.d
  • Запуск на 3 уровне: /etc/rc.d/rc3.d
  • Запуск на 4 уровне: /etc/rc.d/rc4.d
  • Запуск на 5 уровне: /etc/rc.d/rc5.d
  • Запуск на 6 уровне: /etc/rc.d/rc6.d

В этих каталогах имена программ начинаются с S или K, за которыми следуют порядковый номер и имя программы.
Программы, которые начинающиеся с S, выполняются в системе Start, а программы начинающиеся с K, выполняются в системе Kill. Номер последовательности указывает, когда программа будет выполнена.

-=== SYSTEMD ===-

В последних версиях Linux-систем, таких как RHEL 7, Ubuntu 16.04 LTS, концепция уровней запуска была заменена с init на systemd. Вот список целей (targets) Systemd в дистрибутивах Linux, которые были распространены вместе с Systemd в качестве менеджера по умолчанию:

  • runlevel0.target, poweroff.target – Выключение ОС.
  • runlevel1.target, rescue.target – Однопользовательский режим (single user mode).
  • runlevel2.target, multi-user.target – Не используется.
  • runlevel3.target, multi-user.target –Многопользовательский режим (multiuser mode). Нормальный режим работы сервера.
  • runlevel4.target, multi-user.target –Не используется.
  • runlevel5.target,graphical.target – Уровень запуска графического интерфейса.
  • runlevel6.target,reboot.target – Перезапуск ОС.

Перейдем к примерам.

Использование/Переключение runlevel в Unix/Linux

Приведу примеры использования в init и systemd.

-=== INIT ===-

Пользователь root (суперюзверь), может выполнить следующую команду для выключения сервера:

# init 0

Пользователь root (суперюзверь), может выполнить следующую команду для перезагрузки сервера:

# init 6

Собственно, таким образом сожно переключатся между init-уровнями.

-=== SYSTEMD ===-

Если вы хотите изменить RunLevel, например на runlevel3.target, установите его, как показано ниже:

# systemctl set-default runlevel3.target

Или, чтобы установить multi-user.target по умолчанию, используйте следующую команду:

# systemctl set-default multi-user.target

Вы используете команду systemctl isolate для изменения цели. Например, измените на multi-user.target (уровень запуска 3):

# systemctl isolate multi-user.target

Или, чтобы перейти в другой таргет (цель или target), только в текущем сеансе, выполните следующую команду:

# systemctl isolate runlevel3.target

И чтобы вернуться к графический режим (уровень 5-го уровня):

# systemctl isolate graphical.target

Редактирование runlevel в Unix/Linux

Приведу примеры использования в init.

-=== INIT ===-

Для этого, открываем файл:

# vim /etc/inittab

Найдите и отредактируйте запись «initdefault» на уровень выполнения по вашему выбору. Скажем, например, чтобы установить уровень запуска в многопользовательский графический режим (runlevel 5), измените его, как показано ниже:

id:5:initdefault:

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

Дополнительные сведения вы можете получить:

$ man runlevel

Проверка runlevel в Unix/Linux

Приведу примеры использования в init и systemd.

-=== INIT ===-

Чтобы проверить уровень запуска вашей ОС, вы можете использовать команду runlevel без аргументов (Только для Linux ОС):

$ runlevel

Или, можно использовать:

$ /sbin/runlevel

Еще один способ проверить ваш уровень запуска — использовать следующую команду (Работает в Unix/Linux):

$ who -r

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

# chkconfig

Или с использование параметра:

# chkconfig --list

-=== SYSTEMD ===-

В системах Linux, которые используют Systemd в качестве сервис-менеджера по умолчанию, вы можете найти ран-левел с помощью команды:

$ systemctl get-default

Вывод:

graphical.target

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

# systemctl status default.target

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

# systemctl list-units --type target

UNIT                   LOAD   ACTIVE SUB    DESCRIPTION
basic.target           loaded active active Basic System
bluetooth.target       loaded active active Bluetooth
cryptsetup.target      loaded active active Encrypted Volumes
getty.target           loaded active active Login Prompts
graphical.target       loaded active active Graphical Interface
local-fs-pre.target    loaded active active Local File Systems (Pre)
local-fs.target        loaded active active Local File Systems
multi-user.target      loaded active active Multi-User System
network-online.target  loaded active active Network is Online
network-pre.target     loaded active active Network (Pre)
network.target         loaded active active Network
nss-user-lookup.target loaded active active User and Group Name Lookups
paths.target           loaded active active Paths
remote-fs-pre.target   loaded active active Remote File Systems (Pre)
remote-fs.target       loaded active active Remote File Systems
slices.target          loaded active active Slices
sockets.target         loaded active active Sockets
sound.target           loaded active active Sound Card
swap.target            loaded active active Swap
sysinit.target         loaded active active System Initialization
timers.target          loaded active active Timers

LOAD   = Reflects whether the unit definition was properly loaded.
ACTIVE = The high-level unit activation state, i.e. generalization of SUB.
SUB    = The low-level unit activation state, values depend on unit type.

21 loaded units listed. Pass --all to see loaded but inactive units, too.
To show all installed unit files use 'systemctl list-unit-files'.

Вышеуказанная команда покажет только активные цели.

Чтобы просмотреть все загруженные объекты (активные и неактивные), запустите:

# systemctl list-units --type target --all

Проверьте статус конкретной службы, например, демон SSH:

# systemctl status ssh?

Проверьте, активна ли служба(работает ли она), на пример с SSH:

# systemctl is-active sshd
active

Для использования помощи, используйте:

# man systemd

Идем дальше.

Добавить сервис/службу в runlevel в Unix/Linux

Приведу примеры использования в init и systemd.

-=== INIT ===-

Например, вам нужно добавить службу (сервис) nginx на 2-й уровень, для этого вы можете выполнить:

# chkconfig --add nginx 2

Не сильно сложно, верно?

-=== SYSTEMD ===-

Включим службу в автозапуск при запуске ОС, например для SSH:

# systemctl enable sshd

Проверьте, включена ли она в автозапуск следующей командой:

# systemctl is-enabled sshd
enabled

Чтобы убрать службу (пример с SSH) выполните:

# systemctl disable sshd

Для оставновки службы:

# systemctl stop ssh

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

# systemctl mask ssh

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

# systemctl unmask ssh

Как-то так. А на этом, у меня все — статья «Runlevel в Unix/Linux» завершена.

В этом кратком руководстве объясняется, что такое уровень выполнения, сколько уровней выполнения существует в системах Linux и как проверить уровень выполнения в операционных системах Linux.

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

Уровень выполнения – это один из режимов, в котором будет работать операционная система на основе Unix.

Другими словами, уровень выполнения – это состояние init и всей системы, которое определяет, какие системные службы работают.

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

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

Уровень запуска 3 – это интерфейс командной строки, а уровень 5 – это графический интерфейс.

Уровень запуска по умолчанию указан в файле /etc/inittab в большинстве операционных систем Linux.

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

1. Проверим уровень выполнения в системе Linux (SysV init)

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

0 – Остановка
1 – Однопользовательский текстовый режим
2 – Не используется (определяется пользователем)
3 – Полный многопользовательский текстовый режим
4 – Не используется (определяется пользователем)
5 – Полноценный многопользовательский графический режим (с экраном входа на основе X)
6 – перезагрузка

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

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

$ runlevel

Пример вывода:

N 3

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

N 3 – это текущий уровень запуска, то есть система находится в режиме CLI.

В более новых версиях init вы можете найти информацию о текущем и предыдущем уровне выполнения, используя переменные среды, называемые RUNLEVEL и PREVLEVEL.

Скажем, например, чтобы узнать текущий уровень запуска, вам нужно запустить:

$ echo $RUNLEVEL

Чтобы найти предыдущий уровень выполнения:

$ echo $PREVLEVEL

Если вы хотите изменить RunLevel на что-то другое, отредактируйте файл /etc/inittab:

$ sudo vi /etc/inittab

Найдите и отредактируйте запись initdefault до уровня запуска по вашему выбору.

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

id:5:initdefault:

Сохраните и закройте файл.

Перезагрузите систему, чтобы войти на новый уровень выполнения.

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

$ man runlevel

Также можно выполнить команду:

who -r

Пример вывода:

run-level 3 2021-02-12 14:26

2. Проверьте уровень выполнения в Linux (Systemd).

В последних версиях систем Linux (начиная с RHEL 7, Ubuntu 16.04 LTS) концепция уровней запуска была заменена целями systemd.

Вот список целей Systemd в дистрибутивах Linux, которые распространялись с Systemd в качестве диспетчера служб по умолчанию.

  • runlevel0.target, poweroff.target – Остановить
  • runlevel1.target, rescue.target – однопользовательский текстовый режим
  • runlevel2.target, multi-user.target – не используется (определяется пользователем)
  • runlevel3.target, multi-user.target – Полный многопользовательский текстовый режим
  • runlevel4.target, multi-user.target – не используется (определяется пользователем)
  • runlevel5.target, graphical.target – Полноценный многопользовательский графический режим (с экраном входа на основе X)
  • runlevel6.target, reboot.target – перезагрузка

В системах Linux, которые используют Systemd в качестве диспетчера служб по умолчанию, вы можете найти текущую цель с помощью команды:

$ systemctl get-default

Пример вывода:

multi-user.target

Чтобы просмотреть все загруженные в настоящее время цели, запустите:

Управление уровнями выполнения

Управление уровнями выполнения

В предыдущих разделах постоянно упоминались уровни выполнения, но из сказанного вряд ли стало ясно, что же они собой представляют. Говорилось лишь о том, что уровни выполнения и сценарии запуска SysV тесно связаны между собой. При загрузке компьютер переходит на некоторый уровень выполнения. Этому уровню соответствует каталог ссылок SysV; содержащиеся в нем ссылки указывают на сценарии запуска. Если ссылка начинается с символа «S» Linux при вызове сценария передает ему параметр start, а если имя ссылки начинается с «K», сценарию передается параметр stop.

Но как Linux узнает, на какой уровень следует перейти после загрузки? Информация об этом хранится в файле /etc/inittab, который выполняет роль конфигурационного файла для init — первого процесса, выполняющегося в системе. Процесс init является родительским для всех остальных процессов в системе. В файле /etc/inittab содержатся записи наподобие приведенной ниже.

id:5:initdefault:

Ключевое слово id, расположенное в начале, идентифицирует данную строку, а число, следующее за ним (в данном случае 5), устанавливает постоянный уровень выполнения. Если вы измените это значение и перезагрузите компьютер, система будет работать на другом уровне. Уровни 0, 1 и 6 имеют специальное назначение. Уровень 0 соответствует завершению работы системы, уровень 1 — однопользовательскому режиму, а уровень 6 — перезагрузке системы. Уровни 2–5 задают нормальные режимы работы; назначение каждого из уровней может изменяться в зависимости от версии системы. В Caldera, Red Hat Mandrake SuSE7.3 и TurboLinux уровень 3 соответствует обычному текстовому режиму (система X Window не запускается), а уровень 5 поддерживает графический пользовательский интерфейс (система X Window запущена). В ранних версиях SuSE вместо уровней 3 и 5 для поддержки текстового режима и графического интерфейса используются уровни 2 и 3, а в Slackware для той же цели применяются уровни 3 и 4. По умолчанию в Debian на уровнях 2–5 набор серверов, запускаемых посредством сценариев SysV, существенно не отличается, но на уровнях выше третьего используется меньшее число инструментов с текстовым интерфейсом (детали настройки системы можно выяснить, просмотрев содержимое файла /etc/inittab). В большинстве систем файл /etc/inittab содержит подробные комментарии, которые описывают функциональные возможности каждого из уровней. Если вы используете версию системы, которая не обсуждается в данной книге, или если вам нужна дополнительная информация о работе системы на различных уровнях, вы можете получить требуемые сведения, просмотрев комментарии в этом файле.

Внимание

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

Если вы хотите временно изменить уровень выполнения, сделайте это с помощью команды telinit (в некоторых системах для этого приходится вызывать init). Синтаксис telinit имеет следующий вид:

telinit [-t время_в_секундах] [уровень]

При изменении уровня выполнения некоторые процессы могут быть завершены. Для завершения процесса Linux передает ему сигнал SIGTERM либо SIGKILL. Сигнал SIGTERM обеспечивает более «мягкий» режим окончания работы; при этом программа получает возможность закрыть файлы и освободить другие ресурсы. SIGKILL принудительно завершает выполнение программы, в результате файлы, используемые в процессе его работы, могут быть повреждены. При изменении уровня выполнения telinit сначала пытается использовать SIGTERM. Если процесс продолжает выполняться, то через пять секунд telinit передает ему сигнал SIGKILL. Опция -t позволяет изменить этот интервал. В большинстве случаев значение, равное пяти секундам, вполне приемлемо.

Второй параметр, передаваемый telinit, задает уровень выполнения. Для указания уровня используется один символ. Результаты, которые вы получите, задавая в качестве этого параметра число, очевидны. Кроме того, вы можете передать программе другие символы. Их назначение описано ниже.

• а, b или с. Некоторые записи в файле /etc/inittab идентифицируются с помощью символов a, b и с. Эти символы имеют специальное назначение. Если вы передадите один из них telinit, программа будет обрабатывать соответствующие ему записи /etc/inittab; при этом уровень выполнения системы не изменится.

• Q или q. Если задать одно из этих значений как уровень выполнения, telinit повторно считает содержимое файла /etc/inittab и продолжит работу с учетом внесенных изменений.

• S, или s. Эта опция переводит систему в однопользовательский режим.

• U, или u. Данная опция вызывает перезагрузку процесса init; при этом новое содержимое файла /etc/inittab не считывается.

Зачем может понадобиться переходить на другой уровень выполнения? Изменяя уровень выполнения по умолчанию, вы можете изменять набор серверов, работающих в системе. В большинстве дистрибутивных пакетов самым важным считается сервер X Window. Одна из последних записей в файле /etc/inittab управляет запуском этого сервера; в некоторых системах эта задача решается с помощью сценариев запуска SysV. Изменение уровня выполнения позволяет быстро перейти от одного набора сервера к другому, разрешить или запретить графический режим или временно отключить X Window.

Читайте также

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

Очереди выполнения
Основная структура данных планировщика — это очередь выполнения (runqueue). Очередь выполнения определена в файле kernel/sched.c[21] в виде структуры struct runqueue. Она представляет собой список готовых к выполнению процессов для данного процессора.Для каждого

Задержка выполнения

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

Три режима выполнения сценариев WSH

Три режима выполнения сценариев WSH
Для сценариев WSH можно задать один из трех режимов их выполнения:1. Режим безопасности отключен. Запускаются все сценарии, вне зависимости от того, имеется ли у этих сценариев цифровая подпись или нет.2. Средний уровень безопасности.

Порядок выполнения операторов 

Порядок выполнения операторов 
В табл. П1.10 операторы языка JScript расположены по старшинству, т.е. в составных операторах первыми будут выполняться те из них, которые стоят в этой таблице выше. Если операторы расположены в одной строке таблицы, то они выполняются слева

Оценка времени выполнения

Оценка времени выполнения
Майк и Питер совершили ужасную ошибку. Майк спрашивает Питера, сколько времени ему потребуется на выполнение работы. Питер дал честный ответ с тремя переменными, но как насчет мнения его коллег? Может, у них есть свое мнение по этому поводу?Самый

8.7 Оценка времени выполнения

8.7 Оценка времени выполнения
Мы сравнивали hoc с другими программами-калькуляторами UNIX, чтобы приблизительно оценить, насколько хорошо он работает. К таблице, представленной ниже (табл. 8.1), можно, конечно, отнестись скептически, но она показывает «разумность» нашей

6.6 ПРИОСТАНОВКА ВЫПОЛНЕНИЯ

6.6 ПРИОСТАНОВКА ВЫПОЛНЕНИЯ
К настоящему моменту мы рассмотрели все функции работы с внутренними структурами процесса, выполняющиеся на нижнем уровне взаимодействия с процессом и обеспечивающие переход в состояние «выполнения в режиме ядра» и выход из этого состояния в

ПРИЛОЖЕНИЕ Д. УПРАВЛЕНИЕ ХОДОМ ВЫПОЛНЕНИЯ ПРОГРАММЫ

ПРИЛОЖЕНИЕ Д. УПРАВЛЕНИЕ ХОДОМ ВЫПОЛНЕНИЯ ПРОГРАММЫ
Язык Си имеет несколько конструкций, предназначенных для управления выполнением программы. Здесь мы кратко описываем операторы циклов (while, for и do while), ветвлений (if, if else и switch) и переходов (goto, break и continue).

2.1.6. Среда выполнения

2.1.6. Среда выполнения
Операционная система Linux предоставляет каждой запущенной программе среду выполнения. Под средой подразумевается совокупность пар переменная-значение. Имена переменных среды и их значения являются строками. По существующему соглашению переменные

Результаты выполнения тестов

Результаты выполнения тестов
В разделе сопровождающих эту книгу материалов, который расположен на Web-сайте издательства, можно найти тестовую программу, которая применяет все рассмотренные нами тесты к стандартному генератору случайных чисел Delphi и минимальному

1.2.1. Порядок выполнения инструкций

1.2.1. Порядок выполнения инструкций
По умолчанию инструкции программы выполняются одна за другой, последовательно. В программеint main(){readIn();sort();compact();print();return 0;}первой будет выполнена инструкция readIn(), за ней sort(), compact() и наконец print().Однако представим себе ситуацию, когда

Задержка выполнения

Задержка выполнения

Задержка выполнения OnChange (Delphi 2)
В случае нажатия пользователем клавиши или изменении текущего элемента компонента ComboBox, вы обратите внимание на досадную задержку, возникающую при генерации события OnChange.Так как «работа кипит», я хотел бы

10.3. Управление ходом выполнения цикла

10.3. Управление ходом выполнения цикла
break, continueДля управления ходом выполнения цикла служат команды break и continue[ 23 ] и точно соответствуют своим аналогам в других языках программирования. Команда break прерывает исполнение цикла, в то время как continue передает управление в

18.8. Управление ходом выполнения циклов с помощью команд break и continue

18.8. Управление ходом выполнения циклов с помощью команд break и continue
Иногда в процессе работы возникает необходимость в прерывании или пропуске отдельных итераций цикла. При этом применяются определенные критерии. Для обеспечения подобных возможностей интерпретатор shell

28.4.1. Различные уровни выполнения

28.4.1. Различные уровни выполнения
Существует семь уровней выполнения (табл. 28.1). Различные системы имеют на некоторых уровнях небольшие отличия.Прежде чем размещать сценарий на различных уровнях выполнения, уточните, на каких уровнях эта служба должна запускаться или

Понравилась статья? Поделить с друзьями:

Читайте также:

  • Как можно изменить угловой диван
  • Как можно изменить тип шрифта
  • Как можно изменить тип ссылки ответ обоснуйте
  • Как можно изменить тип ссылки информатика 9 класс кратко
  • Как можно изменить тип ссылки информатика 9 класс босова

  • 0 0 голоса
    Рейтинг статьи
    Подписаться
    Уведомить о
    guest

    0 комментариев
    Старые
    Новые Популярные
    Межтекстовые Отзывы
    Посмотреть все комментарии