Почему «init 6» - это команда перезагрузки? (исторические причины)

tar может обрабатывать частичные архивы после разделения. Когда вы пытаетесь восстановить часть такого архива, он пропускает все, что не может использовать в начале, и сообщает вам о любом частичном файле в конце; все, что между ними, будет восстановлено должным образом. Вы можете указать tar разбивать архивы по мере их создания, используя параметры длины ленты; см. Создайте tar-архив, разделенный на блоки максимального размера , для получения подробной информации.

Существуют утилиты, которые работают лучше, чем это, и создают отдельные части архивов (при условии, что предельный размер достаточен для хранения самого большого файла в архиве); к сожалению, те, о которых я знаю, не отвечают всем вашим требованиям. На большинстве платформ есть zipsplit , который может разделять zip-файлы, но справляется только с архивами размером до 2 ГБ. В Plan 9 есть tarsplit , который разбивает архивы, но я не уверен, что его можно легко перенести на любую используемую вами систему (я подозреваю, что вы не используете Plan 9 ...).

3
11.03.2017, 14:16
2 ответа

init 6 является командой перезагрузки из-за исторических определений "runlevels", или общих состояний системы, в которых может находиться хост. Обычно они определяются так:

  • 0 - Выключение / остановка системы
  • 1 - Однопользовательский режим
  • 2 - Зарезервировано для административного использования
  • 3 - Многопользовательский режим с сетью и службами
  • 4 - Зарезервировано для административного использования
  • 5 - Многопользовательский режим с сетью, службами и демоном входа в GUI
  • 6 - Перезагрузка

Команда init указывает системе перейти на указанный уровень выполнения. Поскольку 6 - это обычно определяемый уровень выполнения, используемый для перезагрузки хоста, а init 6 (или telinit 6) является средством перехода на этот уровень выполнения, поэтому init 6 обычно понимается как команда reboot.

Технически говоря, поскольку они могут быть переопределены хитрым или скучающим системным администратором, более целесообразно использовать shutdown -r в качестве команды перезагрузки. Отчасти это связано с тем, что некоторые дистрибутивы (например, Gentoo) полностью отказываются от этого соглашения, а также с тем, что система System V Init все больше устаревает в пользу upstart и других демонов "PID 1".

6
27.01.2020, 21:11

Первое появление init в стиле System V было в SVR3 в начало восьмидесятых, до этого AT&T Unix не принимала аргументов.

Изначально не было настроено ни init 0 , ни init 6 ; только init 1 для однопользовательского режима и init 2 для многопользовательского режима.

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

В SVR4 уровень выполнения стандартизирован для следующих значений:

  • s: однопользовательский
  • 0: остановка / отключение питания
  • 1: однопользовательский режим (! = Одиночный пользователь, который больше был режимом восстановления / администрирования)
  • 2: многопользовательский (машина является клиентом)
  • 3: многопользовательский; распределенный режим (машина является сервером)
  • 4: неназначенный
  • 5: diags
  • 6: reboot

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

Все это произошло до того, как был выпущен Gnu / Linux, поэтому все, что связано с Linux, не имеет значения.

2
27.01.2020, 21:11

Теги

Похожие вопросы