A start job is running: загрузка висит на одной службе
Строка «A start job is running for …» с обратным отсчётом означает, что загрузка ждёт конкретную службу. Через её таймаут запуск прервётся и система продолжит загрузку, но каждый раз это будут потерянные минуты.
Вероятные причины
По порядку: сверху то, что встречается чаще.
-
Служба ждёт недоступный ресурс
Сетевой каталог, база, сервер имён. При загрузке они могут быть недоступны, и служба ждёт до таймаута.
-
Ожидание сети без работающей службы ожидания
Цель готовности сети достигается службой ожидания. Если она включена, но сеть не поднимается, загрузка честно ждёт её таймаут.
-
Ожидание устройства или раздела
Запись в fstab без параметра необязательности заставляет systemd ждать устройство. Диск переставили — загрузка висит.
Диагностика
Команды идут в том порядке, в котором их стоит выполнять: каждая следующая проверяет то, что осталось после предыдущей.
Задания в работе прямо сейчас: видно, что именно держит загрузку.
systemctl list-jobsСколько занял запуск каждого unit в прошлую загрузку.
systemd-analyze blame | head -15Цепочка, определившая общее время загрузки.
systemd-analyze critical-chainРешение
Решение своё для каждой причины. Сначала определите, какая из них ваша, — иначе правки наложатся друг на друга.
- Почему происходит
- Сетевой каталог, база, сервер имён. При загрузке они могут быть недоступны, и служба ждёт до таймаута.
- Как проверить
-
Посмотрите, какое задание висит, и журнал этой службы.
systemctl list-jobs journalctl -b -u имя.service --no-pager | tail -20
- Как исправить
- Уберите блокирующее ожидание: добавьте зависимость от монтирования или сети, сократите таймаут, сделайте ожидание необязательным.
- Почему происходит
- Цель готовности сети достигается службой ожидания. Если она включена, но сеть не поднимается, загрузка честно ждёт её таймаут.
- Как проверить
-
Посмотрите состояние службы ожидания сети.
systemctl status systemd-networkd-wait-online NetworkManager-wait-online --no-pager | head -14
- Как исправить
- Настройте сеть или ограничьте ожидание: у службы ожидания есть ключи для конкретного интерфейса и таймаута.
- Почему происходит
- Запись в fstab без параметра необязательности заставляет systemd ждать устройство. Диск переставили — загрузка висит.
- Как проверить
-
Посмотрите зависшие задания на монтирование.
systemctl list-jobs | grep -i mount sudo findmnt --verify --verbose
- Как исправить
-
Добавьте
nofailи ограничьте ожидание черезx-systemd.device-timeout=для необязательных разделов.
Пример вывода
Загрузка ждёт монтирование сетевого каталога. Пример показательный: он собран на тестовой машине специально для этой страницы, а не взят из чужого журнала.
[ *** ] A start job is running for /srv/backup (1min 23s / 1min 30s)
systemd[1]: srv-backup.mount: Mounting timed out. Terminating.
systemd[1]: Timed out waiting for device /dev/disk/by-uuid/8f1c0a11.
Связанные ошибки
- You are in emergency mode: система не загрузилась Загрузка остановилась в аварийном режиме. Что проверять: fstab, файловые системы, цель по умолчанию. Как войти и починить.
- Failed with result 'timeout' Состояние timeout: служба не уложилась в отведённое время при запуске, остановке или перезагрузке настроек.
- Mount process exited, code=exited, status=32: не найдено устройство Монтирование не проходит: устройство или UUID не найдены, неверная файловая система, недоступен сетевой ресурс. Код 32 от команды mount.
- Цель не достигнута: служба ждёт target, который не наступает Служба не запускается, потому что не достигнута цель из After= или Requires=. Разбор целей multi-user, network-online, graphical.
- Cannot assign requested address при привязке Ошибка 99 при привязке: адрес не принадлежит машине или ещё не поднят. Разбор с network-online.target и ip_nonlocal_bind.
- Dependency failed for … и результат 'dependency' Сообщение Dependency failed for: служба не запускалась, потому что упала её зависимость. Как найти настоящего виновника.
- Job for … failed because a timeout was exceeded Задание на запуск прервано по таймауту. Как отличить медленный старт от заблокированного и правильно настроить TimeoutStartSec.
- Temporary failure in name resolution в журнале службы Служба не может разрешить имя: не готова сеть, нет сервера имён, мешает изоляция. Разбор при загрузке и в работе.
Источники
-
systemd-analyze(1)
Команды blame и critical-chain. -
Воспроизведено на тестовой машине, systemd 255 (Ubuntu 24.04)
Воспроизведено записью в fstab с отсутствующим диском без nofail.