Вопрос или проблема
Я заметил предустановку поставщика для служб 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
. Это может быть полезно, если вы планируете развертывание или хотите контролировать службы в определенных окружениях.
-
Создайте файл
.preset
в каталоге/etc/systemd/system-preset/
с именем, например,99-custom.preset
. -
Добавьте в него записи, указывающие, какие службы вы хотите активировать или деактивировать. Пример файла:
enable myservice.service disable other.service
-
Примените свои предустановки:
sudo systemctl preset
Заключение
Хотя изменение заводских предустановок в Ubuntu 22.04 может показаться привлекательным, рекомендуется использовать стандартные команды systemd для управления статусом служб. Это обеспечит устойчивость и сохранность ваших изменений даже при обновлениях системы. Локальные настройки или собственные предустановочные файлы могут быть полезны, если вы хотите реализовать специфические требования вашей системы. Обеспечивая работоспособность и надежность, вы сможете максимально эффективно использовать преимущества, которые предоставляет systemd.