Аудит systemd: почему не запускаются юниты?

Jan 28, 2016 17:27 · 431 words · 3 minute read debian ubuntu systemd

Systemd — альтернативный менеджер служб для Linux, совместимый со скриптами инициализации LSB и SysV.

По сравнению с System V init обладает некоторыми преимуществами и дополнительными возможностями, по умолчанию установлен в ОС Debian 8 (Jessie). Давайте разберемся, что делать, если не запускаются юниты!

При старте системы юниты должны запускаться в определенном порядке. Если по какой-либо причине юнит не может запуститься, это может повлечь за собой некорректный старт остальных юнитов и всей системы.

Примечание. C точки зрения systemd юнит это — служба (.service), точка монтирования (.mount), устройство (.device) или сокет (.socket).

Наиболее частые проблемы с запуском юнитов — отсутствие необходимых зависимостей (например точки монтирования), настроек или неправильные права доступа.

Список юнитов смотрим так:

systemctl
 UNIT                                     LOAD   ACTIVE SUB       DESCRIPTION
 -.mount                                  loaded active mounted   /
 boot.mount                               loaded active mounted   /boot
 dev-hugepages.mount                      loaded active mounted   Huge Pages File System
 ● dev-mqueue.mount                       loaded failed failed    POSIX Message Queue File System
 tmp.mount                                loaded active mounted   Temporary Directory
 mnt-exchange.mount                       loaded active mounted   /mnt/exchange
 proc-fs-nfsd.mount                       loaded active mounted   /proc/fs/nfsd
 usr-local-backup.mount                   loaded active mounted   /usr/local/backup
 var-lib-mysql.mount                      loaded active mounted   /var/lib/mysql
 var-www.mount                            loaded active mounted   /var/www
 ...
 ● sphinxsearch.service                   loaded failed failed LSB: Fast standalone full-text SQL search engine

Список проблемных юнитов смотрим так:

systemctl --failed
 ● dev-mqueue.mount                       loaded failed failed    POSIX Message Queue File System
 ● sphinxsearch.service                   loaded failed failed LSB: Fast standalone full-text SQL search engine

Узнать подробности о незапущенном юните можно так:

systemctl status dev-mqueue.mount
 ● dev-mqueue.mount - POSIX Message Queue File System
   Loaded: loaded (/usr/lib/systemd/system/dev-mqueue.mount; static)
   Active: failed (Result: exit-code) since Sun 2015-11-23 17:53:10 CET; 4min 12s ago
    Where: /dev/mqueue
     What: mqueue
     Docs: man:mq_overview(7)
           http://www.freedesktop.org/wiki/Software/systemd/APIFileSystems
  Process: 446 ExecMount=/bin/mount -n mqueue /dev/mqueue -t mqueue (code=exited, status=32)

Nov 23 17:53:10 localhost.localdomain systemd[1]: dev-mqueue.mount mount process exited, code=exited status=32
Nov 23 17:53:10 localhost.localdomain systemd[1]: Failed to mount POSIX Message Queue File System.
Nov 23 17:53:10 localhost.localdomain systemd[1]: Unit dev-mqueue.mount entered failed state.

Из этого примера видно, что устройство /dev/mqueue отсутствует в системе.

systemctl status sphinxsearch.service
● sphinxsearch.service - LSB: Fast standalone full-text SQL search engine
   Loaded: loaded (/etc/init.d/sphinxsearch)
   Active: failed (Result: exit-code) since Sun 2015-11-23 17:51:17 CET; 6min 5s ago

Process: 568 ExecStart=/etc/init.d/sphinxsearch start (code=exited, status=1/FAILURE)

Nov 23 17:51:17 astra sphinxsearch[568]: Starting sphinxsearch: /usr/bin/searchd already running.
Nov 23 17:51:17 astra systemd[1]: sphinxsearch.service: control process exited, code=exited status=1
Nov 23 17:51:17 astra systemd[1]: Failed to start LSB: Fast standalone full-text SQL search engine.
Nov 23 17:51:17 astra systemd[1]: Unit sphinxsearch.service entered failed state.

А данный пример — это пока не решенный баг sphinxsearch.

Также для выяснения проблем с запуском юнитов можно изучить логи с помощью команды:

journalctl

или

journalctl _PID=идентификатор процесса

После того, как проблема будет найдена, устранить ее будет несложно.

tweet Share