systemd сервис не запускается после перезагрузки как исправить

Рейтинг: 43.4% · 11 голосов
Дистрибутивы Linux, настройка серверов, сети, systemd, bash-скрипты, безопасность, бэкапы, мониторинг и сопровождение инфраструктуры.
Ответить
Аватара пользователя
asyncmonk
Сообщения: 62
Зарегистрирован: 13 май 2026, 16:00

systemd сервис не запускается после перезагрузки как исправить

Сообщение asyncmonk »

Написал unit-файл для своего скрипта, вручную через systemctl start он запускается нормально. Но после reboot — не стартует, статус failed. В journalctl вижу: 'Failed to start My Service — Start request repeated too quickly.' Что за бред, почему при ручном старте работает, а при автозапуске нет? Вот мой unit:
[Service]
ExecStart=/opt/myapp/start.sh
Restart=always
👍1 ❤️1 🔥2 😄1 🤔
✔ Лучший ответ выбран автором и совпадает с автоматическим подбором — spark_pilot
Вот полный рабочий пример unit-файла, который решает оба варианта проблемы: [Unit] Description=My Application After=network-online.target Wants=network-online.target [Service] Type=simple ExecStart=/opt/myapp/start.sh Restart=on-failure RestartSec=5s StartLimitIntervalSec=60 StartLimitBurst=3 [Install] WantedBy=multi-user.target Ключ: Restart=on-failure вместо always (не будет перезапускать при…
Перейти к ответу →
Аватара пользователя
kingpaul
Сообщения: 57
Зарегистрирован: 11 май 2026, 12:35

Re: systemd сервис не запускается после перезагрузки как исправить

Сообщение kingpaul »

Классика! Проблема скорее всего в том, что при загрузке сервис пытается стартовать до того, как поднялась сеть или смонтировались нужные диски. Добавь в секцию [Unit] строки After=network.target и After=local-fs.target — и почти наверняка поможет.
👍 ❤️ 🔥 😄 🤔1
Аватара пользователя
guardia
Сообщения: 49
Зарегистрирован: 11 май 2026, 14:59

Re: systemd сервис не запускается после перезагрузки как исправить

Сообщение guardia »

Ошибка 'repeated too quickly' означает, что сервис крашится и systemd пытается его перезапустить слишком часто, в итоге сдаётся. Это не проблема порядка загрузки — это проблема самого скрипта. Запусти journalctl -u твой-сервис.service -n 50 --no-pager и смотри что там реально происходит при старте.
👍2 ❤️ 🔥 😄1 🤔
Аватара пользователя
spark_pilot
Сообщения: 16
Зарегистрирован: 15 май 2026, 05:44

Re: systemd сервис не запускается после перезагрузки как исправить

Сообщение spark_pilot »

✔ Лучший ответ — выбран автором и совпадает с авто-подбором
Вот полный рабочий пример unit-файла, который решает оба варианта проблемы:

[Unit]
Description=My Application
After=network-online.target
Wants=network-online.target

[Service]
Type=simple
ExecStart=/opt/myapp/start.sh
Restart=on-failure
RestartSec=5s
StartLimitIntervalSec=60
StartLimitBurst=3

[Install]
WantedBy=multi-user.target

Ключ: Restart=on-failure вместо always (не будет перезапускать при нормальном завершении), RestartSec=5s — пауза между попытками, StartLimitBurst=3 — максимум 3 попытки за 60 секунд. И обязательно network-online.target если скрипт лезет в сеть — это именно 'сеть готова', а не просто 'сетевой интерфейс поднят'.
👍 ❤️ 🔥2 😄2 🤔2
Аватара пользователя
spaegree
Сообщения: 7
Зарегистрирован: 12 май 2026, 14:55

Re: systemd сервис не запускается после перезагрузки как исправить

Сообщение spaegree »

Ещё проверь: скрипт start.sh имеет права на выполнение? chmod +x /opt/myapp/start.sh. Звучит банально, но при ручном запуске от рута может работать, а systemd по умолчанию может запускать от другого пользователя.
👍 ❤️ 🔥 😄 🤔
Аватара пользователя
smith_zhenya
Сообщения: 32
Зарегистрирован: 11 май 2026, 02:02

Re: systemd сервис не запускается после перезагрузки как исправить

Сообщение smith_zhenya »

После изменения unit-файла не забудь systemctl daemon-reload, иначе systemd работает со старой версией файла. Я раз 20 на это наступил.
👍2 ❤️ 🔥 😄 🤔
Аватара пользователя
hunter22
Сообщения: 50
Зарегистрирован: 11 май 2026, 00:25

Re: systemd сервис не запускается после перезагрузки как исправить

Сообщение hunter22 »

Судя по тому, что ты показал только [Service] — а секция [Install] с WantedBy=multi-user.target в юните вообще есть? Проверь systemctl is-enabled твой-сервис. И почти наверняка дело в окружении: при ручном systemctl start у тебя уже всё загружено, а при буте скрипт стартует в голом окружении с минимальным PATH. Добавь в начало start.sh строки set -x и exec >> /tmp/myapp-boot.log 2>&1, перезагрузись — и в логе будет видно, на какой именно команде он умирает в первые секунды загрузки.
👍 ❤️1 🔥 😄1 🤔
Аватара пользователя
nerd_max
Сообщения: 34
Зарегистрирован: 11 май 2026, 14:33

Re: systemd сервис не запускается после перезагрузки как исправить

Сообщение nerd_max »

@spark_pilot, шаблон хороший, одна правка: StartLimitIntervalSec и StartLimitBurst по документации живут в секции [Unit], а не в [Service]. В [Service] они срабатывают только благодаря легаси-совместимости, и на части версий systemd молча игнорируются — человек скопирует, а лимиты не применятся. Лучше сразу перенести в [Unit], тогда поведение предсказуемое везде.
👍2 ❤️ 🔥 😄2 🤔
Аватара пользователя
coldpanic
Сообщения: 45
Зарегистрирован: 11 май 2026, 19:45

Re: systemd сервис не запускается после перезагрузки как исправить

Сообщение coldpanic »

@guardia, плюсую, «repeated too quickly» — это всегда вторичная ошибка, она маскирует первопричину. Дополню: чтобы смотреть именно момент загрузки, удобнее journalctl -b -u сервис — покажет лог с текущего бута без шума от прошлых запусков. И частый виновник там — сеть: After=network.target не гарантирует поднятый линк, target срабатывает раньше, чем появился адрес. Если скрипт сразу куда-то коннектится, нужны network-online.target плюс Wants, иначе крашлуп при буте обеспечен.
👍1 ❤️2 🔥 😄 🤔
Ответить
Поделиться темой: ✈ Telegram VK
Похожие запросы: systemd сервис не запускается после перезагрузкикак создать systemd сервисlaunchd и автозагрузка на MacВосстановление macOS

Вернуться в «Linux и системное администрирование»

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и 0 гостей