Как изменить предустановку поставщика в systemd?

Вопрос или проблема

Я заметил предустановку поставщика для служб systemd, и после исследования я только нашел, что дистрибутивы указывают файлы *.preset для установки предустановок поставщика, но я не могу найти их в Ubuntu 22.04. Определяет ли Ubuntu какой-либо такой файл предустановки, в котором можно изменить предустановки поставщика?

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

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

systemd enable something.service

либо

systemd disable something.service

или, может быть,

systemd enable --now something.service

Редактирование файлов предустановок напрямую – плохая идея, так как следующее обновление может заменить эти файлы и отменить ваши изменения. Вышеуказанные команды являются постоянными (а в случае --now также немедленными).

Ответ или решение

Изменение заводских предустановок в systemd: Полное руководство для Ubuntu 22.04

Введение

В операционных системах на основе Linux, таких как Ubuntu 22.04, служба systemd играет ключевую роль в управлении системными службами и процессами. Одним из его заметных аспектов являются предустановки (preset) служб, которые определяют, должны ли они быть включены или отключены по умолчанию при установке.

Понимание предустановок systemd

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

Продолжение работы с командами systemd

Если вы хотите изменить состояние службы, вам лучше воспользоваться следующими командами systemd:

  • Для активации службы:

    sudo systemctl enable имя_службы.service
  • Для деактивации службы:

    sudo systemctl disable имя_службы.service
  • Для немедленного включения и активации службы:

    sudo systemctl enable --now имя_службы.service

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

Найти предустановочные файлы в Ubuntu 22.04

Хотя Ubuntu может не предоставлять файлы предустановок в явном виде, вы можете найти их в следующих каталогах:

  • /lib/systemd/system-preset/
  • /etc/systemd/system-preset/

В этих каталогах могут находиться разные файлы .preset от установленных пакетов и локальные настройки. При желании, вы можете просмотреть их содержимое с помощью команды:

cat /lib/systemd/system-preset/*.preset

Как создать собственные предустановки

Если вам все же требуется настроить предустановки, вы можете создать собственные файлы .preset. Это может быть полезно, если вы планируете развертывание или хотите контролировать службы в определенных окружениях.

  1. Создайте файл .preset в каталоге /etc/systemd/system-preset/ с именем, например, 99-custom.preset.

  2. Добавьте в него записи, указывающие, какие службы вы хотите активировать или деактивировать. Пример файла:

    enable myservice.service
    disable other.service
  3. Примените свои предустановки:

    sudo systemctl preset

Заключение

Хотя изменение заводских предустановок в Ubuntu 22.04 может показаться привлекательным, рекомендуется использовать стандартные команды systemd для управления статусом служб. Это обеспечит устойчивость и сохранность ваших изменений даже при обновлениях системы. Локальные настройки или собственные предустановочные файлы могут быть полезны, если вы хотите реализовать специфические требования вашей системы. Обеспечивая работоспособность и надежность, вы сможете максимально эффективно использовать преимущества, которые предоставляет systemd.

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

Капча загружается...