SystemdDoctor
мешает работе автозапуск пакеты

Служба включается или отключается сама после установки пакета

Наборы предустановок (preset) определяют состояние автозапуска для служб при установке пакета. Именно поэтому одна служба после установки работает сразу, а другая нет — и это не случайность, а правило дистрибутива.

Вероятные причины

По порядку: сверху то, что встречается чаще.

  1. Набор предустановок отключает службу

    В части дистрибутивов правило по умолчанию — не включать новые службы. Пакет ставится, служба не работает, и это задумано.

  2. Команда применения предустановок сбросила ваше включение

    Команда systemctl preset приводит состояние к правилам дистрибутива. Она может отключить то, что вы включали вручную.

Диагностика

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

Действующие правила предустановок.

grep -r . /etc/systemd/system-preset/ /usr/lib/systemd/system-preset/ 2>/dev/null | head -20

Текущее состояние автозапуска.

systemctl is-enabled myapp.service

Решение

Решение своё для каждой причины. Сначала определите, какая из них ваша, — иначе правки наложатся друг на друга.

1. Набор предустановок отключает службу
Почему происходит
В части дистрибутивов правило по умолчанию — не включать новые службы. Пакет ставится, служба не работает, и это задумано.
Как проверить
Посмотрите правила предустановок для службы.
systemctl is-enabled myapp.service
sudo systemctl preset myapp.service --dry-run 2>/dev/null || grep -r myapp /usr/lib/systemd/system-preset/ /etc/systemd/system-preset/ 2>/dev/null
Как исправить
Включите службу явно: systemctl enable --now. Переопределить правило для всех машин можно файлом в /etc/systemd/system-preset.
2. Команда применения предустановок сбросила ваше включение
Почему происходит
Команда systemctl preset приводит состояние к правилам дистрибутива. Она может отключить то, что вы включали вручную.
Как проверить
Посмотрите, что изменилось, и текущее состояние.
systemctl is-enabled myapp.service
journalctl -b --no-pager | grep -i preset | head
Как исправить
Задайте своё правило в /etc/systemd/system-preset: файлы оттуда имеют приоритет над дистрибутивными.

Пример вывода

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

$ cat /usr/lib/systemd/system-preset/90-systemd.preset | head -3
enable remote-fs.target
enable getty@.service
disable *

Связанные ошибки

Источники

  • systemd.preset(5)
    Формат файлов предустановок и приоритет каталогов.
    официальная документация, systemd 255
    сверено 15 сентября 2026
  • Воспроизведено на тестовой машине, systemd 255 (Ubuntu 24.04)
    Проверено на Ubuntu 24.04: правило «disable *» объясняет невключённые службы.
    собственная проверка, systemd 255
    сверено 15 сентября 2026