Обоснование перехода с upstart на systemd?

Большим изменением, которое приходит с Ubuntu 15.04, является переключение с upstart на systemd в качестве настройки по умолчанию для управления загрузкой и запуском системной службы.

Может ли кто-нибудь адекватно объяснить нетехническому пользователю, как и если это вообще повлияет на нас? И почему это важно?

28
задан 24 April 2015 в 16:20

3 ответа

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

Пользователи, системные администраторы и разработчики, которые активно использовали и разрабатывали для Выскочки, являются людьми, которые должны обратиться к вещам. Существует документ миграции о Ubuntu Wiki, чтобы помочь разработчикам преобразовать свои init сценарии, но пользователи и sysops могут продолжить использовать Выскочку, придерживаясь с 14,04 (который поддерживается до 2019).

причина и объяснение для изменения действительно не были со стороны Ubuntu. Канонический были достаточно счастливы с Выскочкой (их проект), но многие пользователи Debian хотели переместиться в современный init механизм для получения лучшего параллелизма при начальной загрузке и лучшей контрольной функциональности через все сервисы.

, Который означал борьба между различными вариантами (объяснения) и systemd, в конечном счете выигранный.

Канонический продвинулся с Debian, потому что это является самым легким и вероятно лучше всего. Они добираются для отбрасывания проекта и не борются в восходящем направлении. Это также приносит нам в соответствии с другими дистрибутивами (Red Hat, Fedora, и т.д.), кто также перемещается в systemd. Больше фокуса и меньше дублирования усилия.

tl; доктор не техническому человеку, это не должно влиять на Вас вообще. Для Ubuntu это должно означать меньше работы и лучшую init систему.

29
ответ дан 25 April 2015 в 02:20

Кто-либо мог соответственно объяснить нетехническому пользователю, как и если это влияет на нас вообще?

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

Вот неполный список:

  • Если у Вас было дополнительное программное обеспечение, которое использовало новомодные файлы определения задания для запуска программ, они прекратят работать. Необходимо будет установить (и возможно записать, но чаще всего просто зарубка от кого-то еще, кто уже записал), systemd сервисные файлы единицы. Пример: https://askubuntu.com/questions/613785
  • Различные предположения дизайна systemd разработчиками о вещах как управление питанием приводят к значениям по умолчанию, которые противоречат тому, к чему Вы, возможно, привыкли. У systemd разработчиков есть очень определенные идеи о том, что должно произойти в ответ на, крышка включает ноутбуки, например.
  • Если Вы используете Nvidia собственный драйвер дисплея, то существуют различные проектные решения в systemd, которые влияют на Вас. Пример: https://askubuntu.com/questions/613773
  • Это не действительно релевантно при прибытии от выскочки, поскольку у пользователей Ubuntu была страница руководства, говоря им это в течение нескольких лет теперь, но я упоминаю это для пользователей не-Ubuntu, которые могли бы считать это: Другие пользователи операционных систем Linux, происходящие из Системы 5 init+rc укушены тем, что systemd только назад совместим с Системой 5 rc. Как выскочка и действительно большинство других систем, это выражает, и предоставления, нет назад совместимость с Системой 5 init и его конфигурационный файл /etc/inittab.

    Так люди, которые последовали совету от от 30 - несколько лет людей, советующих "ну, Можно просто отредактировать это в /etc/inittab …", или люди, которые используют программное обеспечение, которое последовало тому совету теперь, имеют программное обеспечение, которое не запускается при начальной загрузке. Пример: https://unix.stackexchange.com/a/196197/5132

  • Вы не можете добраться до однопользовательского режима через systemd shutdown команда, как Вы могли с предыдущим shutdown команды. Кроме того, что это назвало спасательный режим на жаргоне systemd, спасательный режим не считают состоянием закрытия в systemd мировоззрении. Это рассматривается как состояние выполнения. shutdown now выключит машину. Это systemctl rescue достигнуть однопользовательского режима в systemd мире.Дальнейшее чтение: https://unix.stackexchange.com/a/196471/5132
  • В дополнение к тому последнему предмету: Если Вы уже не выбросили идею уровней выполнения, теперь время, чтобы сделать так. Чтение Futher: https://unix.stackexchange.com/a/196014/5132
  • Вы оказываетесь перед необходимостью быть осторожными относительно следования общему systemd совету, найденному случайным просмотром WWW, потому что Вы "знаете", что "это - весь systemd теперь". Вы собираетесь видеть, что люди говорят о выполнении команд с --user опция к systemctl. Это (еще) не относится к Ubuntu. выскочка и systemd значительно отличаются по этой области, и версия 15 Ubuntu все еще использует выскочку init на сессию, а не systemd экземпляр в расчете на пользователя. Так https://superuser.com/a/860598/38062 не будет применяться, например. ☺
18
ответ дан 25 April 2015 в 02:20

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

Разъяснение

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

Это - init система, не что-то, с чем пользователи традиционно взаимодействуют.

Это имело место с SysV init и с Выскочкой, но это больше не имеет место с systemd. Это делает много вещей, с которыми традиционно взаимодействуют пользователи:


Это должно полностью заменить функциональность, обеспеченную Выскочкой — и сделать несколько дополнительных вещей

Две вещи разъясниться - сначала о завершенной замене Выскочки:

Никакие сценарии SysV init

Одна из проблем, которые люди имеют с systemd, - то, что он не выполняет сценарии SysV init. Таким образом, существует один пример, что он не полностью заменяет функциональность, обеспеченную Выскочкой.

Это - что-то, на что мы могли полагаться больше 30 лет, и традиционно Вы записали сценарии SysV init для максимальной мобильности, не повторяя себя (путем записи нескольких версий тех же сценариев), который больше не имеет место.

Это не должно быть проблемой при использовании только пакетов из официальных репозиториев, потому что, по-видимому, всем пакетам, которые раньше имели или SysV init или Новомодные сценарии, должны будут переписать их сценарии, прежде чем они будут упакованы.

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

Существует systemd-sysv-generator, который, как предполагается, автоматически переводит сценарии SysV init в systemd сценарии, но существуют некоторые ошибки и длинный список явных несовместимостей.

Теперь, второе разъяснение - о тех немногих дополнительных вещах:

Немного дополнительных вещей

Те "немного дополнительных вещей", что systemd собирается покрыть - согласно Перспективе для systemd - Что было Достигнуто, и Что Предстоит в будущем презентация Lennart Poettering в 2014 в GNOME.asia - следующие:

  • система init
  • вход журнала
  • управление входом в систему
  • управление устройствами
  • управление временным и часто меняющимся файлом
  • регистрация двоичного формата
  • подсветка сохраняет/восстанавливает
  • rfkill сохраняют/восстанавливают
  • bootchart
  • readahead
  • зашифрованная установка устройства хранения данных
  • Исследование раздела EFI/GPT
  • виртуальная машина / контейнерная регистрация
  • контейнерное управление
  • управление именем хоста
  • управление локалью
  • тайм-менеджмент
  • случайное управление семенем
  • управление переменной sysctl
  • консольное управление
  • самоанализ
  • автоматическое обнаружение
  • Plug and Play
  • управление сетью
  • systemd-networkd
  • Кэш DNS
  • респондент mDNS
  • Респондент LLMNR
  • Проверка DNSSEC
  • IPC в ядре
  • kdbus
  • sd-шина
  • синхронизация времени с NTP
  • systemd-timesyncd
  • интеграция с контейнерами
  • игра в песочнице сервисов
  • игра в песочнице приложений
  • Формат изображения ОС
  • Контейнерный формат изображения
  • Формат изображения приложения
  • GPT с автоматическим обнаружением
  • Системы не сохраняющие состояние
  • instantiatable системы
  • фабрика сбрасывается
  • инициализация узла и обновления
  • интеграция с облаком
  • управление службами через узлы
  • ОС поддающаяся проверке отображает полностью к встроенному микропрограммному обеспечению
  • Загрузка начальной загрузки
  • Создание Следующего поколения Интернета ОС, Объединяющая бессмысленные различия между дистрибутивами

Так возвращение к: "Это - init система, не что-то, с чем пользователи традиционно взаимодействуют". - нужно указать, что init система является всего одним объектом в том списке.


И наконец, последняя вещь я хотел бы прокомментировать:

[T] он только время, нетехнический пользователь будет видеть это, - когда оно идет не так, как надо.

О, какое облегчение.:)

Изменения

Наиболее заметные изменения для конечных пользователей (кроме самих сценариев) запускают и останавливают сервисы и используют команды как:

которые больше не работают как ожидалось. Например, nohup команда POSIX должна удостовериться, что процесс продолжает бегать за Вами журнал из Вашей сессии. Это больше не работает над systemd. Также программы как screen и tmux потребность, которая будет вызвана специальным способом или иначе процессы, которые Вы выполняете с ними, будут уничтожены (не получение тех уничтоженных процессов обычно является главной причиной рабочего экрана или tmux во-первых).

Это не ошибка, это - проектное решение, таким образом, это вряд ли будет зафиксировано в будущем. Это - то, что Lennart Poettering сказал об этой проблеме:

По моему мнению, было на самом деле довольно странно из UNIX, что это значением по умолчанию позволило произвольному пользователю кодировать, остаются вокруг неограниченного после выхода из системы. Это было обсуждено целую вечность теперь среди многих людей ОС, что это должно возможный, но конечно не быть значением по умолчанию, но никто не смел до сих пор зеркально отражать переключатель для превращения его от значения по умолчанию до опции. Не очищая сеансы пользователя после того, как выход из системы не только ужасен и несколько hackish, но также и проблема безопасности. systemd 230 теперь наконец зеркально отразил переключатель и наконец по умолчанию очищает все правильно, когда пользователь выходит из системы.

Поскольку больше информации видит:

Выполнение screen

  • выскочка: screen
  • systemd: systemd-run --user --scope screen

(Примечание: поведение "выскочки" выше - действительно что-либо кроме systemd, это не конкретная выскочка),

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

  • выскочка: start foo
  • systemd: systemctl start foo

Остановка нечто задания:

  • выскочка: stop foo
  • systemd: systemctl stop foo

Перезапуск нечто задания:

  • выскочка: restart foo
  • systemd: systemctl restart foo

Список заданий с их состоянием:

  • выскочка: initctl list
  • systemd: systemctl status

(См. мой ответ на то, Каковы профессионалы/недостатки Выскочки и systemd? для получения дополнительной информации, которые являются вне объема для этого вопроса.)

Журналы

Существует также большая разница в обработке журналов, потому что вопреки традиции Unix журналы systemd хранятся в двоичных файлах в пользовательском формате, таким образом, вместо:

cat /var/log/upstart/foo.log
tail -f /var/log/upstart/foo.log

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

sudo journalctl -u foo
sudo journalctl -u foo -f

Споры

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

Официальная позиция Debian по systemd и получающемуся противоречию привела к объявлению Исхода в 2014 и закончилась отставкой Ian Jackson.

Свобода Init, Without-Systemd.org и инициативы Systemd-Free.org родились с большим обсуждением Hacker News.

Дальнейшее чтение

6
ответ дан 25 April 2015 в 02:20

Другие вопросы по тегам:

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