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