#Симптом и границы применимости
В Rocky Linux с системным менеджером systemd служба запускается вручную, но не при старте системы. Рассматриваются установленные Rocky Linux 8/9/10 с systemd; поведение конкретного пакета, ограничения SELinux и имя unit могут отличаться.
#Возможные причины и признаки
| Возможная причина | Как узнать | Что делать |
|---|---|---|
| Нет enable для сервисаРучной start не включает автоматический запуск. | systemctl is-enabled возвращает disabled. | Включить только unit с поддерживаемой секцией [Install]. |
| SELinux или другой механизм запрещает работу при загрузкеВ момент старта у службы иной путь, контекст или доступ. | В журнале permission denied и AVC, позднее программа стартует. | Разобрать причины отказа без отключения SELinux. |
| Требуемый ресурс недоступен при стартеСлужба ждёт сеть, диск, базу данных или другой unit. | Журнал текущей загрузки показывает недоступный ресурс. | Проверить конкретные After/Requires и готовность зависимости. |
#Подробная диагностика и безопасные действия
- 1. Уточните имя системной службыОткройте терминал Rocky Linux локально или через SSH. Имя ИМЯ.service замените на реально найденное в
list-unit-files.not-foundтребует исправления имени или наличия пакета; это не состояние disabled. - Диагностическая команда в терминале Arch Linux, без изменения настроекLinux · Терминал (Bash)КомандаДиагностическая команда в терминале Arch Linux, без изменения настроек.
systemctl list-unit-files --type=service --no-pagersystemctl status ИМЯ.service --no-pager
- 2. Сравните включение и состояние
systemctl is-enabledвыводит enabled/disabled/static/masked; при static сервис может запускаться другой единицей. До изменения запишите исходное состояние, чтобы можно было отменить свои действия.Linux · Терминал (Bash)КомандаДиагностическая команда в терминале Arch Linux, без изменения настроек.systemctl is-enabled ИМЯ.servicesystemctl cat ИМЯ.service
- 3. Посмотрите ошибки загрузки и ограниченияНайдите журнал предыдущей загрузки и текущей. Если журнал прошлого запуска не сохраняется, используйте текущий и запланированную проверочную загрузку. При подозрении на SELinux сначала найдите конкретное AVC-событие, не отключайте enforcing.
- Диагностическая команда в терминале Arch Linux, без изменения настроекLinux · Терминал (Bash)КомандаДиагностическая команда в терминале Arch Linux, без изменения настроек.
journalctl -b -1 -u ИМЯ.service --no-pager -n 80journalctl -b -u ИМЯ.service --no-pager -n 80getenforce
- 4. Проверьте зависимости и средуОтметьте After, Requires, Wants, User, WorkingDirectory и EnvironmentFiles. Если сервис настроен для сети, не считайте network.target гарантией выхода в интернет; проверьте готовность фактической зависимости.
- Диагностическая команда в терминале Arch Linux, без изменения настроекLinux · Терминал (Bash)КомандаДиагностическая команда в терминале Arch Linux, без изменения настроек.
systemctl show ИМЯ.service -p After -p Requires -p Wants -p User -p WorkingDirectorysystemctl list-dependencies ИМЯ.service --no-pager
- 5. Включите штатную автозагрузку только при disabledЕсли пакет предусматривает [Install], а is-enabled показывает disabled, включите её. Ошибка no installation config означает, что напрямую enable этот unit нельзя. Если masked, не снимайте маску без понимания причины.
- Администратор; включается автозагрузкаLinux · Терминал (Bash)С осторожностьюНужен sudoАдминистратор; включается автозагрузка. Откат: sudo systemctl disable ИМЯ.service, если ранее было disabled.
sudo systemctl enable ИМЯ.servicesystemctl is-enabled ИМЯ.serviceКоманда может изменить состояние системы или её настройки. Проверьте параметры и последствия перед запуском.
- 6. Убедитесь в работоспособности вручнуюВ согласованное время запустите выбранную службу и посмотрите фактическую функцию (сайт, сокет, задачу), а не только active. Если ошибка SELinux подтверждена AVC, настройте корректный контекст по документации приложения: отключать SELinux как средство исправления не следует.
- Дополнительная команда по темеLinux · Терминал (Bash)С осторожностьюНужен sudoВыполняйте в терминале Arch Linux; изменяйте только указанную и предварительно проверенную настройку.
sudo systemctl start ИМЯ.servicesystemctl status ИМЯ.service --no-pagerjournalctl -b -u ИМЯ.service --no-pager -n 45Команда может изменить состояние системы или её настройки. Проверьте параметры и последствия перед запуском.
- 7. Контролируйте запуск после следующей загрузкиДля удалённого сервера заранее подготовьте консоль восстановления. После плановой перезагрузки проверьте статус, время возникновения ошибок и реально выполняемую функцию. Если ручной старт снова единственный успешный, вернитесь к журналу зависимостей и SELinux; прежнюю настройку enable можно отменить.
- Диагностическая команда в терминале Arch Linux, без изменения настроекLinux · Терминал (Bash)КомандаДиагностическая команда в терминале Arch Linux, без изменения настроек.
systemctl is-enabled ИМЯ.servicesystemctl is-active ИМЯ.servicejournalctl -b -u ИМЯ.service --no-pager -n 60
#Как понять, что проблема устранена
Повторите исходное действие, из-за которого возникла неисправность, и сверяйте не только код завершения команды, но и прикладной результат. Сохраните вывод последней диагностической команды и записи журнала до и после исправления. Если ошибка повторяется, верните только изменённую настройку из резервной копии и передайте специалисту точный симптом, имя программы/службы, версию системы и необходимые фрагменты журнала без паролей и закрытых ключей.
#Что делать, если не помогло
Не применяйте случайные советы для другого дистрибутива: в Arch Linux особенно опасны частичные обновления пакетов, а в Rocky Linux — отключение SELinux или неконтролируемый перезапуск системных служб. Остановитесь после неуспешного безопасного шага, зафиксируйте фактическое сообщение и вернитесь к соответствующей причине. Для загрузки, разделов диска и единственного удалённого подключения используйте резервную копию и локальную консоль.