Init 6 что за команда
Перейти к содержимому

Init 6 что за команда

  • автор:

init 6 / shutdown -r / reboot

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

cheetah111v
12.10.17 13:43:13 MSK

reboot
Если reboot запущен с флагом —force или текущий уровень запуска 0, то выполняется системный вызов ядра reboot, что незамедлительно перегружает систему, без выполнения каких-либо действий. В противном случае reboot полностью эквивалентен shutdown -r now.

init 6
При запуске init 6 инит отрабатывает все скрипты, соответствующие 6му уровню запуска. Традиционно это останавливает запущенные сервисы (хотя никто и не мешает добавить на этот уровень запуска и команду, которая будет делать что-то ещё).

shudown -r now
Блокирует возможность новых логинов в систему, посылает всем уже залогиненым пользователям сообщение о перезагрузке, после чего выполняет init 6.

redgremlin ★★★★★
( 12.10.17 14:20:42 MSK )
Ответ на: комментарий от redgremlin 12.10.17 14:20:42 MSK

Костыль на костыле короч

ozz_is_here
( 12.10.17 15:52:06 MSK )
Ответ на: комментарий от ozz_is_here 12.10.17 15:52:06 MSK

Не могу не согласиться. Хорошо, что уже 7 лет есть systemctl reboot.

redgremlin ★★★★★
( 12.10.17 16:00:23 MSK )
19 сентября 2019 г.
Ответ на: комментарий от redgremlin 12.10.17 16:00:23 MSK

А зачем systemctl? Прекрасно отрабатывает просто reboot.

init(1M)

init — универсальное средство запуска процессов. Его основная задача — создавать процессы на основе информации, находящейся в файле /etc/inittab .

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

В каждый момент времени система находится на одном из восьми возможных уровней выполнения (run level). Уровень выполнения — это конфигурация программного обеспечения, при которой существует только определенная группа процессов. Процессы, запускаемые процессом init для каждого из этих уровней выполнения, определяются в файле /etc/inittab . Процесс init может работать на одном из восьми уровней выполнения, 0 — 6 , S или s (уровни S и s — идентичны). Уровень выполнения изменяется, когда привилегированный пользователь выполняет процесс /sbin/init . Он посылает соответствующие сигналы исходному процессу init , запущенному операционной системой при загрузке, уведомляющие его о том, на какой уровень выполнения перейти.

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

При загрузке системы вызывается процесс init и происходит следующее. Сначала он читает файл /etc/default/init для установки переменных среды. Именно на основе информации из этого файла устанавливается переменная TZ (часовой пояс) и переменные, задающие локаль, например, LANG или LC_CTYPE .

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

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

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

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

S или s Процесс init переходит в однопользовательское состояние. В этом состоянии системная консоль (устройство /dev/console ) открывается на чтение и запись, и вызывается команда /sbin/su , (см. su(1M) ). Для изменения уровня выполнения в дальнейшем используйте команду init или telinit . Учтите, что если работа командного интерпретатора будет прекращена (путем ввода символа конца файла), процесс init , при отсутствии файла /etc/inittab переинициализируется только в однопользовательское состояние.

0 — 6 Процесс init переходит на соответствующий уровень выполнения. Уровни выполнения 0, 5 и 6 зарезервированы для остановки системы. Уровни 2, 3 и 4 доступны как варианты многопользовательской работы.

Если это первый, после включения питания, переход процесса init на уровень выполнения, отличный от однопользовательского, процесс init сначала ищет в файле /etc/inittab записи boot и bootwait (см. inittab(4) ). Эти записи выполняются до любой другой обработки файла /etc/inittab , если уровень выполнения, на который выполняется переход, соответствует уровню, указанному в такой записи. Таким образом, любая специфическая инициализация операционной системы, например, монтирование файловых систем, может быть выполнена до того, как в системе зарегистрируются пользователи. Затем процесс init просматривает файл /etc/inittab и выполняет все остальные записи, соответствующие данному уровню выполнения.

Чтобы запустить все процессы в /etc/inittab , процесс init читает записи, и для каждой записи, которую необходимо перезапустить, он порождает дочерний процесс. После порождения всех процессов, указанных в файле /etc/inittab , процесс init ждет, пока не завершит работу один из порожденных им процессов, пока не поступит сигнал powerfail или сигнал от другого процесса init или telinit , требующий изменить уровень выполнения системы. В любом из этих случаев, процесс init перечитывает файл /etc/inittab .

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

Новые записи можно добавлять в файл /etc/inittab в любой момент; однако, процесс init будет ждать наступления одного из перечисленных выше условий, прежде чем перечитывать файл /etc/inittab . Чтобы обойти это, выполните команду init Q или init q , требующую от процесса init немедленно перечитать файл /etc/inittab .

При запуске init в момент начальной загрузки и при любом переходе системы из однопользовательского состояния на другой уровень выполнения, init устанавливает параметры состояния ioctl(2) в режимы, сохраненные в файле /etc/ioctl.syscon . Процесс init записывает данные в этот файл при каждом переходе в однопользовательский режим.

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

Когда делается запрос на изменение уровня выполнения системы, процесс init посылает предупреждающий сигнал ( SIGTERM ) всем процессам, не определенным на заданном уровне выполнения. Процесс init ждет пять секунд, прежде чем принудительно завершать работу этих процессов посылкой им сигнала SIGKILL .

Когда процесс init получает сигнал о том, что порожденный им процесс прекратил существование, он записывает информацию об этом событии и его причине в файлы /var/adm/utmpx и /var/adm/wtmpx, если они существуют (см. who(1) ). Хронология порождения процессов записывается в файл /var/adm/wtmpx .

Если процесс init получает сигнал о сбое питания ( SIGPWR ), он ищет в файле /etc/inittab специальные записи типа powerfail и powerwait . Соответствующие этим записям процессы запускаются (если позволяет уровень выполнения) перед выполненгием любой дальнейшей обработки. За счет этого процесс init может выполнить необходимые действия по завершению работы операционной системы и записи информации при отключении питания.

Файл /etc/defaults/init

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

TZ Задает либо информацию о часовом поясе (см. ctime(3C) ), либо имя файла с информацией о часовом поясе /usr/share/lib/zoneinfo .

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

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

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

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

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

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

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

Команда telinit , связанная с /sbin/init , используется для управления действиями init . Она принимает односимвольный аргумент и требует от init выполнить соответствующее действие.

Для управления сеансом init использует модули pam(3PAM) . Правила конфигурирования PAM, перечисленные в файле /etc/pam.conf , задают, какой модуль управления сеансом должен использоваться для init . Вот строка из файла pam.conf , задающая для init использование модуля управления сеансом UNIX.

init session required /usr/lib/security/pam_unix.so.1

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

0 Перейти в режим микропрограммного обеспечения.
1 Перевести систему в редим системного администрирования. При этом все локальные файловые системы смонтированы. Работает только небольшой набор сущесвтенных процессов ядра. Этот режим предназначен для решения административных задач, например, установки дополнительных пакетов. Все файлы доступны, и никакие пользователи в системе не зарегистрированы.
2 Перевести систему в многопользовательский режим. Запускаются все необходимые для работы многопользовательской среды процессы и демоны. Это сотояние обычно называют многопользовательским .
3 Расширить многопользовательский режим, предоставляя доступ по сети к локальным ресурсам.
4 Можно определять как альтернативную конфигурацию многопользовательской среды. Этот уровень выполнения не обязателен для работы системы и обычно не используется.
5 Остановить машину так, что можно безопасно отключать питание. Если возможно, требует от машины автоматически выключить питание.
6 Остановить операционную систему и перезагрузить ее в состояние, задаваемое записью initdefault в файле /etc/inittab .
a , b , c Обработать только записи файла /etc/inittab , соответствующие уровню выполнения a , b или c . Это псевдосостояния, которые можно задавать для запуска определенных команд без изменения текущего уровня выполнения.
Q , q Перечитать файл /etc/inittab .
S , s Перейти в однопользовательский режим. Это единственный уровень выполнения, не требующий наличия файла /etc/inittab соответствующего формата. Если этот файл не существует, по умолчанию, единственным допустимым уровнем выполнения, на который может перейти процесс init является однопользовательский. При работе в однопользовательском режиме будут смонтированы файловые системы, необходимые для выполнения базовых действий в системе. При переходе в однопользовательский режим с более высоого уровня эти файловые системы остаются смонтированными (даже если предоставляются удаленным файловым сервером), и все прочие локальные файловые системы тоже останутся смонтированными. При переходе в однопользовательский режим с более высокого уровня, все процессы, запущенные процессом init или сценариями в каталоге init.d , которые должны работать только в многопользовательском режиме, завершаются (» убиваются «). Кроме того, завершаются все процессы, для которых есть запись utmpx . Это последнее условие гарантирует, что все мониторы портов, запущенные системой SAC, завершаются, как и все службы, запущенные этими мониторами портов, в том числе, службы регистрации ttymon .

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

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

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

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

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

АТРИБУТЫ

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

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

ССЫЛКИ

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

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

Следует избегать бессистемного использования уровней выполнения S и s в файле /etc/inittab . При изменении этого файла, лучше избегать добавления этого состояния в любые строки, кроме initdefault .

Если стандарное состояние не указано с помощью записи initdefault в файле /etc/inittab , система переходит на уровень 6. Как следствие, система зациклится и будет постоянно перезагружаться.

Если при загрузке системы не удается создать файл utmpx , система загрузиться в состояние » s «, независимо от состояния, указанного в записи initdefault файла /etc/inittab . Это может произойти при недоступности файловой системы /var .

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

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

Как перезагрузить сервер Linux?

В статье рассмотрим, как перезагрузить (перезапустить) по SSH сервер Linux. Например, перезагрузить сервер Ubuntu, CentOS Debian и основанные на них дистрибутивы можно удаленно по SSH или подключившись к командной строке другим способом.

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

Reboot the server they said

Когда требуется перезагрузка?

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

Так когда перезагружаем?

  1. Сервер завис или тормозит;
  2. Некорректно работают установленные программы;
  3. При смене операционной системы;
  4. При работе с BIOS (если есть физический доступ или его эмуляция);
  5. При использовании программ низкоуровневого копирования и восстановления данных (например, Acronis Backup).

На всякий пожарный: не перезагружайте сервер во время установки/удаления программ.

Как перезагрузить сервер через консоль?

Linux-серверы можно перезагрузить в консоли 3 простыми способами (команды shutdown, reboot и init).

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

Как перезагрузить сервер по SSH?

Все действия должны выполняться из-под пользователя root.

Подключитесь к вашему серверу под root-пользователем. Пароль суперпользователя указан в личном кабинете и письме, отправленном после активации сервера:

Письмо с логином и паролем для SSH доступа

После ввода команды соединение с сервером будет прервано. Перезагрузка займет до 15 минут.

1. Команда shutdown -r

Это базовая команда, которая используется для перезагрузки Linux-сервера с Ubuntu.

Введите команду, и сервер будет перезагружен сразу:

Еще можно запланировать перезагрузку, введя вместо now конкретное время. Например, назначим перезагрузку сервера на 11 утра:

shutdown -r 11:00

Также можно перезагрузить сервер через небольшой промежуток времени. Например, через 5 минут:

2. Команда reboot

Также можно перезагрузить Linux-серверы с Ubuntu, Debian, CentOS или другим дистрибутивом с помощью универсальной команды reboot.

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

Введите команду, и сервер будет перезагружен сразу:

После ввода команды соединение с сервером будет прервано. Консоль оповестит: The system is going down for reboot NOW!

3. Команда init 6

Также для перезагрузки можно использовать уровни системы инициализации Init Scripts. Всего в этой системе 6 уровней: где 0 — выключение, а 6 — перезагрузка. Чтобы перейти к этому уровню, используйте команду:

Что делать, если сервер не работает после перезагрузки

Если в ходе перезагрузки что-то пошло не так, можно узнать о состоянии сервера, подключившись через IP-KVM.

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

Нужен надежный и недорогой выделенный сервер?

Выделенные серверы по низким ценам! Переходи и выбирай свой!

Как использовать команду init в Linux

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

Его основная роль состоит в том, чтобы создать процессы из сценария, хранящегося в файле / etc / inittab.Этот файл обычно хранит записи, которые вызывают init для создания Gettys на каждой строке, которую пользователи могут войти в систему. Он также контролирует автономные процессы, требуемые любой конкретной системой.

Вознаграждение

Проговел пробел — это конфигурация программного обеспечения системы, которая позволяет выполнять только выбранную группу процессов.Процессы, порожденные init для каждой из этих запуска, определены в файле / etc / inittab.Init может быть в одном из восьми ручки: 0-6 и S или S.Против нижнего этаже изменяется, имея привилегированный пользовательский Telinit, который отправляет соответствующие сигналы для INIT, рассказывая о том, что запускаемое заголовок изменяется.

Runlevels 0, 1, и 6 зарезервированы.RunLevel 0 используется для остановки системы, RunLevel 6 используется для перезагрузки системы, а RunLevel 1 используется для получения системы в однопользовательский режим.Руководитель S не предназначен для использования напрямую, но вместо этого скрипты выполняются при вводе RunLevel 1.

Рейтинг 7-9 также действителен, хотя и не задокументирован, потому что «традиционные» варианты UNIX не используют их.Runlevels S и S одинаковы.Внутренне они псевдонимы для того же прогона.

Загрузка

После того, как init вызывается как последний шаг последовательности загрузки ядра, она ищет файл / etc / inittab, чтобы увидеть, есть ли запись типа initdefault.Запись initdefault определяет начальное rundlevel of system.Если такого входа нет (или NO / etc / inittab вообще), на системной консоли должен быть введен рабочий заголовок.

Руководитель S или S принимает систему в однопользовательский режим и не требует файла / etc / inittab.В однопользовательском режиме ON / DEV / Console открыта корневая оболочка.

При входе в однопользовательский режим INIT прочитывает состояния IOCTL Console из /etc/ioctl.save.Если этот файл не существует, init инициализирует линию в 9600 Baud и с помощью настроек Clocal.Когда init покидает однопользовательский режим, он хранит настройки IOCTL консоли в этом файле, чтобы он мог использовать их для следующей однопользовательской сессии.

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

При запуске нового процесса INIT сначала проверяет, существует ли файл / etc / intscript.Если это так, он использует этот скрипт для начала процесса.

Каждый раз, когда ребенок завершает, init записывает факт и причина, по которой он умерл в / var / run / utmp и / var / log / wtmp, при условии, что эти файлы существуют.

Изменение рулендов

После того, как он появится все указанные процессы, init ждет, чтобы один из его потомков процессов умирает, сигнал PowerFail или до тех пор, пока он не будет сигнализироваться на телинит, чтобы изменить пробег системы.Когда происходит одно из этих трех условий, он пересматривает файл / etc / inittab.Новые записи могут быть добавлены в этот файл в любое время.Однако init все еще ждет одного из вышеупомянутых трех условий.Чтобы обеспечить мгновенный ответ, команда Telinit q или q может проснуться инициативы, чтобы повторно изучить файл / etc / inittab.

Если init не находится в режиме однопользователя, и принимает сигнал PowerFail (SIGPWR), он читает файл / etc / powerstatus.Затем он запускает команду на основе содержимого этого файла:

  • F (AIL): Power не удается, ИБП обеспечивает питание.Выполнить записи PowerWait и PowerFail.
  • O (k): мощность была восстановлена, выполняет записи PoweroKwait.
  • L (OW): Power не удается, а ИБП имеет низкий аккумулятор.Выполните записи PowerFaillow.

Если / etc / powerstatus не существует или не содержит ничего, кроме букв f, o, или l, init ведет себя так, как если бы он читает письмо F.

Использование SIGPWR и / etc / Powerstatus теперь не рекомендуется.Используйте канал управления / dev / initctl в современных дистрибутивах Linux.

Когда init требуется изменить проголову, он отправляет предупреждающий сигнал SIGTERM для всех процессов, которые не определены в новом рабочем этаже.Затем он ждет пять секунд, прежде чем насильственно прекращает эти процессы, используя сигнал SIGKILL.Обратите внимание, что init предполагает, что все эти процессы и их потомки остаются в той же группе процесса, которые первоначально созданы для них.Если какой-либо процесс меняет свою комбинацию групповой группы, она не получает эти сигналы.Такие процессы должны быть прекращены отдельно.

Теленит

Telinit связан с / sbin / init.Требуется односимое аргумент и сигналы init для выполнения соответствующих действий.Следующие аргументы служат директивами для Telinit:

  • 0, 1, 2, 3, 4, 5 или 6: init init, чтобы перейти на указанный уровень прогона.
  • A, B, C: Скажите INIT, чтобы обработать только те записи файла / etc / inittab, имеющие undlevel a, b, или c.
  • Q или q: Скажите init, чтобы повторно изучить файл / etc / inittab.
  • S или S: Скажите init, чтобы перейти на однопользовательский режим.Иногда однопользовательский режим называется режимом восстановления, потому что он часто используется для ремонта аварийных систем.
  • U или U: Скажите init, чтобы повторно выполнить себя (сохранение состояния).Не возникает повторное рассмотрение файла / etc / inittab.Проговел должен быть S, S, 1, 2, 3, 4 или 5;В противном случае запрос молча проигнорируется.

Telinit также может рассказать, сколько времени следует подождать между отправкой процессов сигналов SIGTERM и SIGKILL.По умолчанию по умолчанию пять секунд, но это значение может быть изменено с помощью опции -t-it.

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

Двоичные проверки init, если это init или Telinit, глядя на его идентификатор процесса.Идентификатор процесса реального init всегда 1. Из этого следует, что вместо звонка Telinit человек может использовать init в качестве ярлыка.

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

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