Поиск по сайту:

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

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

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

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

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

По умолчанию система загружается либо на уровень запуска 3, либо на уровень запуска 5. Уровень запуска 3 — это CLI, а уровень 5 — графический интерфейс. Уровень запуска по умолчанию указан в файле /etc/inittab в большинстве операционных систем Linux.

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

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

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

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

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

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

runlevel

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

N 3

В приведенном выше выводе буква 'N' указывает, что уровень выполнения не менялся с момента загрузки системы. А 3 — это текущий уровень выполнения, т. е. система находится в режиме CLI.

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

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

echo $RUNLEVEL

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

echo $PREVLEVEL

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

sudo vi /etc/inittab

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

id:5:initdefault:

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

Более подробную информацию об уровнях выполнения можно найти на страницах руководства.

man runlevel

2. Проверьте уровень запуска в Linux (Systemd)

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

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

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

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

systemctl get-default

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

graphical.target

Как вы видите в приведенном выше выводе, мой текущий уровень выполнения (другими словами, целевой) — 5, что соответствует графическому режиму.

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

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 Local 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
   nfs-client.target      loaded active active NFS client services
   nss-lookup.target      loaded active active Host and Network Name Lookups
   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
   rpc_pipefs.target      loaded active active rpc_pipefs.target
   rpcbind.target         loaded active active RPC Port Mapper
   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
   veritysetup.target     loaded active active Local Verity Integrity Protected Volumes
 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.
 26 loaded units listed. Pass --all to see loaded but inactive units, too.
 To show all installed unit files use 'systemctl list-unit-files'.

Проверьте уровень запуска в Linux (Systemd)

Приведенная выше команда покажет только активные цели.

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

systemctl list-units --type target --all

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

sudo systemctl set-default runlevel3.target

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

sudo systemctl isolate runlevel3.target

Более подробную информацию можно найти на страницах руководства Systemd.

man systemd

Проверьте уровень запуска Linux с помощью команды «кто»

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

who -r

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

     run-level 5  2021-06-09 10:21

Надеюсь это поможет.

Связанное чтение:

  • Как вывести список служб запуска при загрузке в Linux

Статьи по данной тематике