Ubuntu Ubuntu Linux

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

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

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

Рассматривается служба systemd в Ubuntu, которую удаётся запустить командой systemctl start, но после перезагрузки она остаётся inactive или failed. Для службы пользователя (--user) порядок другой: это выясняется на первом шаге. На сервере с единственным SSH-доступом заранее обеспечьте запасную консоль.

В этой статье
  1. Что означает проблема и кому подходит инструкция
  2. Возможные причины и отличительные признаки
  3. Диагностика и пошаговое устранение
  4. Как убедиться, что неисправность устранена
  5. Если результат не получен

#Что означает проблема и кому подходит инструкция

Рассматривается служба systemd в Ubuntu, которую удаётся запустить командой systemctl start, но после перезагрузки она остаётся inactive или failed. Для службы пользователя (--user) порядок другой: это выясняется на первом шаге. На сервере с единственным SSH-доступом заранее обеспечьте запасную консоль.

#Возможные причины и отличительные признаки

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

#Диагностика и пошаговое устранение

  1. 1. Определите имя службы и вид её запускаОткройте «Терминал» сочетанием Ctrl+Alt+T или подключитесь к серверу по SSH. Замените ИМЯ.service на настоящее имя из сообщения об ошибке или systemctl list-unit-files --type=service. Не вводите русское слово ИМЯ буквально. Выполните проверку состояния. Loaded: not-found означает, что имя неверное или пакет отсутствует; при active сразу после ручного запуска всё равно требуется проверить включение автозагрузки.
    Linux · Терминал (Bash)Команда
    Команды для системной службы; просмотр без повышения прав.
    systemctl status ИМЯ.service --no-pager
    systemctl is-enabled ИМЯ.service
  1. 2. Сравните ручной старт и причины сбоя загрузкиЕсли служба сейчас остановлена, запускать её следует только понимая её роль: старт базы данных или веб-сервера может повлиять на пользователей. Для безопасной диагностики сначала посмотрите записи именно текущей загрузки и предыдущей (-b -1 доступно при сохранённом журнале). Сравните время ошибки, сообщение Failed, путь к файлу и код status=. Если предыдущих записей нет, фиксируйте ошибку при следующей контролируемой загрузке.
  2. Если журнал доступен только администратору, используйте sudo перед каждой командой
    Linux · Терминал (Bash)Команда
    Если журнал доступен только администратору, используйте sudo перед каждой командой.
    journalctl -u ИМЯ.service -b --no-pager -n 80
    journalctl -u ИМЯ.service -b -1 --no-pager -n 80
  1. 3. Проверьте, откуда systemd читает настройкиВыполните systemctl cat, чтобы увидеть основной unit и дополнительные файлы. Найдите [Install] и WantedBy=; если раздела нет, unit может быть статическим и запускаться через другой объект. Посмотрите After=, Requires=, Wants=, WorkingDirectory=, ExecStart=. Не считайте наличие After=network.target гарантией готовности Интернета.
    Linux · Терминал (Bash)Команда
    Только просмотр; проверьте реальные имена зависимостей.
    systemctl cat ИМЯ.service
    systemctl show ИМЯ.service -p FragmentPath -p DropInPaths -p UnitFileState -p After -p Wants
  1. 4. Включите автозагрузку, если служба управляемаяТолько когда is-enabled показывает disabled и в unit предусмотрен корректный раздел [Install], включите службу командой sudo systemctl enable ИМЯ.service. Это изменяет ссылки в /etc/systemd/system, но само по себе не запускает процесс. Сначала сохраните текст systemctl cat и убедитесь, что не включаете экспериментальную или конфликтующую службу. Статус static не лечится принудительным добавлением WantedBy без знания зависимостей.
    Linux · Терминал (Bash)С осторожностьюНужен sudo
    Администратор; ожидается enabled. Откат: sudo systemctl disable ИМЯ.service.
    sudo systemctl enable ИМЯ.service
    systemctl is-enabled ИМЯ.service

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

  1. 5. Исправьте только подтверждённую зависимостьЕсли журнал подтверждает, что служба стартует раньше смонтированного диска, проверьте findmnt и RequiresMountsFor= в документации systemd; если причина в сети, выясните, какая служба действительно ожидает online. Для локального собственного unit используйте sudo systemctl edit ИМЯ.service, создайте изменение в [Unit] и только по подтверждённой причине. Не копируйте After=network-online.target во все службы и не изменяйте файлы в /usr/lib напрямую.
    Linux · Терминал (Bash)Команда
    Диагностика порядка старта; если команды нет, сначала проверьте systemd.
    systemctl list-dependencies ИМЯ.service
    systemd-analyze critical-chain ИМЯ.service
  1. 6. Проверьте повторный запуск без потери доступаПосле корректировки выполните systemctl status и is-enabled, затем согласуйте перезагрузку на время, когда остановка безопасна. После неё повторите команды и проверьте конкретную функцию службы (например, ответ приложения, запись в журнале). Если опять failed, сохраните journalctl -b -u и откатите последнее изменение через sudo systemctl revert ИМЯ.service только если созданные вами drop-in файлы можно удалить без потери чужих изменений.
    Linux · Терминал (Bash)Команда
    Перезагрузка выполняется отдельно после согласования остановки сервиса.
    systemctl status ИМЯ.service --no-pager
    systemctl is-enabled ИМЯ.service
    journalctl -b -u ИМЯ.service --no-pager -n 40

#Как убедиться, что неисправность устранена

Исправление подтверждено, когда без ручного start после новой загрузки unit находится в ожидаемом состоянии и его реальная функция работает. Если unit является oneshot, состояние inactive (dead) после успешного завершения может быть нормальным — проверяйте код последнего запуска и результат задания.

#Если результат не получен

Не повторяйте опасные действия наугад. Сохраните точную формулировку ошибки, вывод диагностики без секретов, версию Ubuntu и данные о затронутом компоненте. Верните лишь собственные изменения из резервной копии; если затронута загрузка, диски или рабочий сервер, воспользуйтесь консолью восстановления либо помощью администратора.

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

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

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