Debian Debian 12Debian 13

Debian Linux: служба запускается вручную, но не при старте системы

  • Обновлено
  • Чтение ≈ 4 минуты
  • Нужны права администратора

Краткий ответ

На Debian 12 (bookworm) и Debian 13 (trixie) служба может успешно запускаться из терминала, но отсутствовать после перезагрузки. Нельзя путать системный объект systemd, пользовательскую службу и сервис, который активируется через socket или timer.

В этой статье
  1. Когда возникает ошибка в Debian и какие условия важны
  2. Причины и как отличить их друг от друга
  3. Пошаговая диагностика и устранение
  4. Проверка результата и действия при неуспехе

#Когда возникает ошибка в Debian и какие условия важны

На Debian 12 (bookworm) и Debian 13 (trixie) служба может успешно запускаться из терминала, но отсутствовать после перезагрузки. Нельзя путать системный объект systemd, пользовательскую службу и сервис, который активируется через socket или timer.

#Причины и как отличить их друг от друга

Возможная причинаКак узнатьЧто делать
Не включена активация при загрузкеsystemctl is-enabled показывает disabled, а ручной start проходит.Проверить, предусмотрен ли [Install] и не запускается ли служба другим объектом.
Не готовы файловая система или сетьВ журнале ранней загрузки есть ошибки доступа к каталогу, маршруту либо зависимости.Сопоставить порядок запуска с фактическими ресурсами.
Не тот вид службыsystemctl --user видит объект, а системный systemctl — нет.Уточнить контекст пользователя и входа в сеанс.

#Пошаговая диагностика и устранение

  1. 1. Запишите имя службы и реальный выпуск DebianВ графической среде откройте «Терминал» через меню приложений, на сервере подключитесь по SSH. Команда определения системы работает без администратора. Если используется контейнер без systemd, дальнейшие действия с systemctl не подходят: проверьте способ запуска контейнера.
  2. Чтение данных и диагностика
    Linux · Терминал (Bash)Команда
    Чтение данных и диагностика. Изменений нет.
    cat /etc/os-release
    ps -p 1 -o comm=
    systemctl list-unit-files --type=service --no-pager
  1. 2. Проверьте состояние и включение автозагрузкиВместо ИМЯ.service подставьте действительное имя из предыдущего списка, сохранив расширение service. Сравните строки Loaded, Active и UnitFileState. active после ручного старта ещё не доказывает, что служба стартует при следующей загрузке; disabled — признак отсутствия обычного включения.
  2. Чтение данных и диагностика
    Linux · Терминал (Bash)Команда
    Чтение данных и диагностика. Изменений нет.
    systemctl status ИМЯ.service --no-pager
    systemctl is-enabled ИМЯ.service
    systemctl show ИМЯ.service -p UnitFileState -p MainPID
  1. 3. Найдите событие при предыдущей загрузкеСначала запишите список доступных загрузок, затем читайте журнал конкретного объекта. Индекс -1 выбирает предыдущую сохранённую загрузку, но на системе с непостоянным журналом её может не быть. Если найдено Permission denied или dependency failed, исправляйте именно указанную причину.
  2. Чтение данных и диагностика
    Linux · Терминал (Bash)Команда
    Чтение данных и диагностика. Изменений нет.
    journalctl --list-boots
    journalctl -b -1 -u ИМЯ.service --no-pager -n 100
  1. 4. Проверьте, чем служба запускается автоматическиКоманда cat показывает штатный файл и локальные переопределения; list-dependencies поможет найти связанный target. При состоянии static, indirect или generated не включайте службу насильно: она может активироваться сокетом, таймером либо другим зависимым объектом.
  2. Чтение данных и диагностика
    Linux · Терминал (Bash)Команда
    Чтение данных и диагностика. Изменений нет.
    systemctl cat ИМЯ.service
    systemctl list-dependencies --reverse ИМЯ.service --no-pager
  1. 5. Включите запуск только для подходящей службыКогда systemctl is-enabled показывает disabled, служба должна постоянно работать и unit содержит корректную секцию [Install], используйте enable. Команда меняет конфигурацию автозапуска, не запускает процесс немедленно. Если это экземпляр шаблона, включают конкретный экземпляр, а не имя с символом @ без параметра.
    Linux · Терминал (Bash)С осторожностьюНужен sudo
    Для отмены только собственного изменения: sudo systemctl disable ИМЯ.service.
    sudo systemctl enable ИМЯ.service
    systemctl is-enabled ИМЯ.service

    Команда может изменить состояние системы или её настройки. Проверьте параметры и последствия перед запуском.

  1. 6. Проверьте параметры зависимостей без случайной правкиЕсли сбой только ранним утром при загрузке, найдите в unit WorkingDirectory, ExecStart, After и Requires. Сравните их с путями на диске и журналом. Для изменения только собственного unit используйте systemctl edit; системные файлы пакета в /lib/systemd/system либо /usr/lib/systemd/system не перезаписывайте.
    Linux · Терминал (Bash)Команда
    Чтение данных и диагностика. Изменений нет.
    systemctl show ИМЯ.service -p WorkingDirectory -p After -p Requires
    systemd-analyze critical-chain ИМЯ.service
  1. Чтение данных и диагностика
    Linux · Терминал (Bash)Команда
    Чтение данных и диагностика. Изменений нет.
    systemctl is-enabled ИМЯ.service
    systemctl status ИМЯ.service --no-pager
    journalctl -b -u ИМЯ.service --no-pager -n 40
  2. 7. Выполните проверку после согласованной перезагрузкиСначала убедитесь, что доступ к серверу восстановим через консоль управления или физический монитор. После запланированной перезагрузки проверьте active и фактическую работу программы, а не только код команды. Если вновь failed — сохраните новую запись журнала для сопоставления.

#Проверка результата и действия при неуспехе

Успех — после новой загрузки Debian запускает именно нужную службу, а приложение действительно обрабатывает запросы. Если сервис предназначен для запуска по требованию, проверяйте его соответствующий socket/timer.

Так эту ошибку тоже называют

Источники и обновления

Последнее обновление статьи: 2 ноября 2026. Версии программ и интерфейсы меняются — если шаги не совпадают с вашей версией, сверяйтесь с документацией производителя.