#Симптом и границы применимости
Системная служба (systemd) в установленной Arch Linux запускается командой start, но после перезагрузки остаётся inactive/failed. Инструкция не относится автоматически к службам systemctl --user и единицам без секции Install.
#Возможные причины и признаки
| Возможная причина | Как узнать | Что делать |
|---|---|---|
| Автозагрузка выключенаРучной start не создаёт связей для следующей загрузки. | systemctl is-enabled показывает disabled. | Включить unit, если у него есть подходящая [Install]. |
| Зависимости ещё недоступныПрограмма ждёт сеть, том или другой сервис. | В журнале отказ по пути или таймаут при загрузке, но ручной старт успешен. | Проверить реальные зависимости, а не добавлять произвольную паузу. |
| Штатное состояние static/indirectНекоторые службы запускаются по требованию другим юнитом. | is-enabled показывает static, indirect или alias. | Найти активирующий .socket/.timer, не применять enable вслепую. |
#Подробная диагностика и безопасные действия
- 1. Уточните имя службыОткройте терминал локальной Arch Linux или SSH-сеанс; вместо ПРИМЕР.service введите настоящий идентификатор из ошибки. Сначала выясните, является ли он системным: пользовательские службы ищутся с --user. При not-found не продолжайте — выясните имя пакета.
- Диагностическая команда в терминале Arch Linux, без изменения настроекLinux · Терминал (Bash)КомандаДиагностическая команда в терминале Arch Linux, без изменения настроек.
systemctl list-unit-files --type=service --no-pagersystemctl status ПРИМЕР.service --no-pager
- 2. Проверьте, включена ли автозагрузкаКоманда is-enabled различает enabled, disabled, static и masked. При masked выясните, кто и зачем запретил запуск; не снимайте маску автоматически. Запишите исходное состояние — оно потребуется для отката.
- Диагностическая команда в терминале Arch Linux, без изменения настроекLinux · Терминал (Bash)КомандаДиагностическая команда в терминале Arch Linux, без изменения настроек.
systemctl is-enabled ПРИМЕР.servicesystemctl cat ПРИМЕР.service
- 3. Исследуйте ошибку прошлой загрузкиСравните время и причину неудачного запуска, ищите отсутствие файла, ошибки прав или таймаут сетевого адреса. Если предыдущие логи отсутствуют, используйте текущий журнал после контролируемого старта. Не делайте вывод по одной строке active.
- Диагностическая команда в терминале Arch Linux, без изменения настроекLinux · Терминал (Bash)КомандаДиагностическая команда в терминале Arch Linux, без изменения настроек.
journalctl -b -1 -u ПРИМЕР.service --no-pager -n 100journalctl -b -u ПРИМЕР.service --no-pager -n 100
- 4. Разберите цепочку запускаПосмотрите полное определение unit, поля After/Wants/Requires, а также список зависимостей. Для сетевых служб network.target не означает «DNS уже работает»; нужная зависимость определяется приложением. Показанные зависимости помогают найти настоящий блокирующий ресурс.
- Диагностическая команда в терминале Arch Linux, без изменения настроекLinux · Терминал (Bash)КомандаДиагностическая команда в терминале Arch Linux, без изменения настроек.
systemctl show ПРИМЕР.service -p After -p Wants -p Requires -p WantedBysystemctl list-dependencies ПРИМЕР.service --no-pager
- 5. Включите только корректно установленную службуТолько если is-enabled=disabled и секция [Install] содержит WantedBy/RequiredBy, выполните enable. Эта операция изменяет ссылки автозагрузки; она не устраняет ошибки самой программы. Если вывод сообщает no installation config, работайте с запускающим таймером/сокетом по документации пакета.
- Права администратора; enable создаёт правила автоматического запускаLinux · Терминал (Bash)С осторожностьюНужен sudoПрава администратора; enable создаёт правила автоматического запуска. Для отката: sudo systemctl disable ПРИМЕР.service.
sudo systemctl enable ПРИМЕР.servicesystemctl is-enabled ПРИМЕР.serviceКоманда может изменить состояние системы или её настройки. Проверьте параметры и последствия перед запуском.
- 6. Запустите пробно и проверьте реальную функциюПроверьте отказ службы и её журнал после одного контролируемого старта. Если сервер используется людьми, согласуйте остановку и повторный старт. Действующий процесс не гарантирует работу сетевого порта — проверьте интерфейс программы и её журнал.
- Дополнительная команда по темеLinux · Терминал (Bash)С осторожностьюНужен sudoВыполняйте в терминале Arch Linux; изменяйте только указанную и предварительно проверенную настройку.
sudo systemctl start ПРИМЕР.servicesystemctl status ПРИМЕР.service --no-pagerjournalctl -u ПРИМЕР.service -b --no-pager -n 40Команда может изменить состояние системы или её настройки. Проверьте параметры и последствия перед запуском.
- 7. Проверьте следующую загрузкуНа удалённом сервере перезагружайте машину только при наличии консоли восстановления и окна обслуживания. После плановой перезагрузки повторите проверки: служба должна стартовать без ручного вмешательства; иначе сравните журнал и верните настройку enable к исходному состоянию.
- Диагностическая команда в терминале Arch Linux, без изменения настроекLinux · Терминал (Bash)КомандаДиагностическая команда в терминале Arch Linux, без изменения настроек.
systemctl is-active ПРИМЕР.servicesystemctl is-enabled ПРИМЕР.servicejournalctl -b -u ПРИМЕР.service --no-pager -n 50
#Как понять, что проблема устранена
Повторите исходное действие, из-за которого возникла неисправность, и сверяйте не только код завершения команды, но и прикладной результат. Сохраните вывод последней диагностической команды и записи журнала до и после исправления. Если ошибка повторяется, верните только изменённую настройку из резервной копии и передайте специалисту точный симптом, имя программы/службы, версию системы и необходимые фрагменты журнала без паролей и закрытых ключей.
#Что делать, если не помогло
Не применяйте случайные советы для другого дистрибутива: в Arch Linux особенно опасны частичные обновления пакетов, а в Rocky Linux — отключение SELinux или неконтролируемый перезапуск системных служб. Остановитесь после неуспешного безопасного шага, зафиксируйте фактическое сообщение и вернитесь к соответствующей причине. Для загрузки, разделов диска и единственного удалённого подключения используйте резервную копию и локальную консоль.