systemctl


[ Пред. ] [ Содержание ] [ След. ]

systemctl


Created Среда 24 октября 2018
перезагрузить компоненты systemd.
systemctl daemon-reload
Как в Linux пользоваться командой systemctl

systemctl позволяет управлять основными процессами Linux. Ниже представлена небольшая инструкция в виде шпаргалки наиболее используемых команд.
Без параметров, systemctl показывает список запущенных служб, точек монтирования, устройств и других юнитов.
# systemctl
Примерный вывод команды:

1) название юнита;
2) тип юнита (например, service: служба или демон, mount: точка монтирования, device: устройства);
3) состояние юнита (загружен или нет);
4) обобщенный статус юнита (active: выполняется, inactive: не был запущен, maintenance: требуется внимание администратора);
5) текущий статус (запущен или нет);
6) описание.

Шпаргалка по часто используемым командам systemctl
Посмотреть статус службы:
# systemctl status network
• покажет статус службы на примере сети network
Запустить сервис:
# systemctl start mysql
• запустит сервис баз данных на примере mysql
Остановить службу:
# systemctl stop ntpd
* остановит сервис времени ntpd
Перезапустить службу:
# systemctl restart nginx
* перезапустит веб-сервер nginx
Включить автозапуск службы:
# systemctl enable apache
* разрешит автозапуск веб-сервера apache
Отключить автозапуск службы:
# systemctl disable firewalld
* запретит автозапуск брандмауэра firewalld
Выполнить команду на удаленной системе:
systemctl --host root@192.168.0.15 stop cron
• остановит cron на компьютере с IP-адресом 192.168.0.15, подключившись под учетной записью root.
Перезапустить mysql, если она запущена:
# systemctl try-restart mysql
Совет:
Большинство команд ниже также будут работать, если указать несколько юнитов, см. systemctl(1).
Опция --now может использоваться в командах enable, disable и mask, чтобы соответственно запустить, остановить или маскировать указанный юнит сразу при выполнении команды, а не после перезагрузки.
Пакеты могут содержать собственные юниты для различных целей. Если вы только что установили пакет, воспользуйтесь командой pacman -Qql название_пакета | grep -Fe .service -e .socket, чтобы их найти.
Незамедлительно запустить юнит:

Перезапустить юнит:
# systemctl restart юнит
Попросить юнита перезагрузить его настройки:
# systemctl reload юнит
Показать статус юнита, а также запущен он или нет:
$ systemctl status юнит
Проверить, включен ли юнит в автозапуск при загрузке системы:
$ systemctl is-enabled юнит
Включить юнит в автозапуск при загрузке системы и запустить незамедлительно:
# systemctl enable --now юнит
Маскировать юнит, чтобы сделать невозможным его запуск (как вручную, так и в качестве зависимости, что делает маскировку несколько опасной):
# systemctl mask юнит
Снять маскировку юнита:
# systemctl unmask юнит
Показать страницу справочного руководства, связанного с юнитом (необходима поддержка этой функции в указанном файле юнита):
$ systemctl help юнит
Перезагрузить настройки systemd, чтобы он увидел новые или измененные юниты:
Примечание: Эта команда перезагружает только настройки systemd и не просит юниты перезагрузить их собственные настройки; для юнитов используйте команду reload.
# systemctl daemon-reload


Аудит 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=идентификатор процесса
После того, как проблема будет найдена, устранить ее будет несложно

Содержание