загрузчик

Выскочка - Чем он лучше или хуже других?

Выскочка - Чем он лучше или хуже других?
Когда компания Canonical впервые придумала Upstart, преобладающей системой все еще был sysvinit, который запускал все последовательно и более или менее останавливался после этого. Он также удостоверился, что система корректно закрылась. Это привело к необходимости иметь другие решения для устройств с горячим подключением, таких как USB-накопители и тому подобное. Основная идея разработчиков заключалась в том, чтобы сделать его управляемым по событиям, что упростило обработку упомянутых событий горячего подключения. Upstart также может запускать неизмененные сценарии sysvinit, поэтому вы можете перейти на Upstart, выполнив только установку. Этот проект находится только в режиме обслуживания, поэтому используйте этот пост как интересный фрагмент. Вы можете столкнуться с этой системой в старых обновленных системах.

Чем отличается Upstart?

У Upstart есть модель запуска любого доступного задания, когда событие происходит. Сравните это с systemd, который запускает процессы, в которых работают все остальные системы. Основное отличие состоит в том, что Upstart ожидает событий, а systemd координирует зависимости. Обе системы могут запускать обычные сценарии, и обе пытаются запускаться параллельно. Поскольку различия настолько малы, скрипты Upstart обычно можно просто вызвать с помощью служебного файла systemd. Они также могут запускать неизмененные файлы systemV. Фактически, оба по умолчанию ищут старую файловую структуру systemV. Большая разница в том, что Upstart ищет определенные события для запуска чего-либо. Поэтому, если вы хотите добавить свой собственный сервис, вам нужно выяснить, в каком контексте вам нужна ваша услуга. Обычно это легко, так как вам нужно что-то, что работает, например, на вашем рабочем столе. Рабочий стол запускается с уровнем запуска события 5, поэтому вы устанавливаете это в своем скрипте. Для systemd, напротив, это графическая цель. В выскочке у вас также есть другие события, которые вы можете использовать, такие как установка, установка и запрос клавиатуры. Они обрабатываются с помощью systemd через сокеты и dbus.

Как вы переносите скрипты?

У вас есть все сценарии Upstart в / etc / init, их имена - это имя задания с расширением conf. Скрипты не являются исполняемыми, они просто указывают на один или несколько исполняемых файлов, которые следует запустить. В любых сценариях Upstart вы определили, при каком событии сценарий должен запускаться и когда он должен останавливаться. У вас также должны быть записи до начала и после остановки. Они подготовят среду и уберут после выполнения. Пример сценария ниже

описание "Простой скрипт"
начать на уровне выполнения [2345]
остановить на уровне выполнения [06]
респаун
env SCRIPT_ENV_VAR = '/ путь / к / файлу.config '
chdir / путь / к / скрипту /
скрипт exec bash.ш

Оператор exec говорит, что произойдет, если вы запустите его вручную. Директивы start и stop определяют, когда скрипт запускается автоматически. Как видите, вы также можете указать каталог, в котором он будет работать. В Upstart есть еще много аспектов, но вы должны научиться мигрировать.

Чтобы этот скрипт работал в systemd, вам необходимо создать служебный файл.

Ед. изм]
Описание = Простой скрипт
[Услуга]
Среда = SCRIPT_ENV_VAR = / путь / к / файлу.config
WorkingDirectory = / путь / к / скрипту
ExecStart = / usr / bin / сценарий bash.ш
Перезагрузка = всегда
[Установить]
WantedBy = многопользовательский.цель

Здесь вы можете увидеть, что то же самое происходит, но с другими ключевыми словами. Формат простой и по делу. Вместо уровней запуска вы указываете, какой целевой объект хочет, чтобы ваш скрипт. Это подчеркивает, что systemd - это все о зависимости и запуске вещей для конкретной среды. Также обратите внимание, что ExecStart указывает на глобальный путь, он никогда не использует локальный путь.

Где это лучше??

Upstart был разработан для параллельного поведения, но он также был разработан, чтобы быть маленьким. Если вы найдете это где-нибудь, он будет во встроенных системах и ChromeOS. Да, это было в ChromeOS. Причина в том, что он был построен поверх Ubuntu с самого начала, в то время, когда Ubuntu была выскочкой в ​​качестве начальной системы по умолчанию. ChromeOS с тех пор перешла на использование Gentoo в качестве основы.

Заключение

Выскочка - тема интересная, но в основном историческая. Он может вам понадобиться только в том случае, если вы столкнетесь со старыми системами. Самая распространенная альтернатива в Linux сейчас - systemd. Если у вас есть оговорки относительно systemd, вам следует поискать другие минимальные системы. Один интересный - бездельник, грех. Он поддерживает три сигнала, и вы должны написать для него все сценарии или изменить сценарии от кого-то другого. Это может быть интересным упражнением, но оно полезно только в том случае, если вы работаете над очень минимальной и специализированной системой.

Лучшие приложения для сопоставления геймпадов для Linux
Если вам нравится играть в игры на Linux с помощью геймпада вместо стандартной системы ввода с клавиатуры и мыши, для вас есть несколько полезных прил...
Полезные инструменты для геймеров Linux
Если вам нравится играть в игры на Linux, скорее всего, вы использовали приложения и утилиты, такие как Wine, Lutris и OBS Studio, для улучшения игров...
Игры HD Remastered для Linux, ранее не выпускавшиеся для Linux
Многие разработчики и издатели игр придумывают HD-ремастеры старых игр, чтобы продлить жизнь франшизы, порадовать фанатов, требующих совместимости с с...