Jan. 24th, 2017




systemd
/usr/lib/systemd/system/: юниты, предоставляемые пакетами при их установке
/etc/systemd/system/: юниты, устанавливаемые системным администратором

Просмотреть список всех активных юнитов
$ systemctl list-units

Покажет любой юнит, который система загрузила или попыталась загрузить, независимо от текущего состояния в системе
$ systemctl list-units --all

неактивные юниты:
$ systemctl list-units --all --state=inactive

Посмотреть только активные юниты служб:
$ systemctl list-units --type=service

Вывод списка всех файлов юнитов
$ systemctl list-unit-files

Посмотреть только юниты, добавленные в автозагрузку:
$ systemctl list-unit-files | grep enabled

Увидеть дерево зависимостей юнита:
$ systemctl list-dependencies юнит
Чтобы показать обратные зависимости (юниты, зависящие от указанного юнита), вы можете добавить в команду флаг --reverse.

Проверка свойств юнита:
$ systemctl show юнит

Незамедлительно запустить юнит:
# systemctl start юнит

Незамедлительно остановить юнит:
# systemctl stop юнит

Перезапустить юнит:
# systemctl restart юнит

Попросить юнита перезагрузить его настройки:
# systemctl reload юнит

Показать статус юнита, а также запущен он или нет:
$ systemctl status юнит

Проверить, включен ли юнит в автозапуск при загрузке системы:
$ systemctl is-enabled юнит

Проверить, активен ли данный юнит:
$ systemctl is-active юнит

Включить юнит в автозапуск при загрузке системы:
# systemctl enable юнит

Убрать юнит из автозапуска при загрузке системы:
# systemctl disable юнит

Маскировать юнит, чтобы сделать невозможным его запуск:
# systemctl mask юнит

Снять маску юнита:
# systemctl unmask юнит

Показать страницу справочного руководства, связанного с юнитом (необходима поддержка этой функции в указанном файле юнита):
$ systemctl help юнит

Перезагрузить systemd для поиска новых или измененных юнитов:
# systemctl daemon-reload

список запущенных юнитов
$ systemctl list-unit-files | grep enabled

службы systemd, которые не смогли запуститься:
$ systemctl --failed

какие именно системные компоненты заставляют systemd ждать так долго
$ systemd-analyze blame




Управление питанием

Завершить работу и перезагрузить систему:
$ systemctl reboot

Завершить работу и выключить компьютер (с отключением питания):
$ systemctl poweroff

Перевести систему в ждущий режим:
$ systemctl suspend

Перевести систему в спящий режим:
$ systemctl hibernate

Перевести систему в режим гибридного сна (или suspend-to-both):
$ systemctl hybrid-sleep

https://wiki.archlinux.org/index.php/Systemd_(Русский)
Как использовать Systemctl для управления службами Systemd и юнитами

список команд systemd
systemd-analyze                - выводит информацию о времени загрузки системы и ее производительности
systemctl                      - основная команда для управления службами и юнитами в systemd. Используется для запуска, остановки, перезапуска и проверки статуса служб
systemd-cgls                   - выводит древовидную структуру контрольных групп (cgroups)
systemd-cgtop                  - выводит список процессов, запущенных в контрольных группах
systemd-analyze blame          - выводит список юнитов и время, затраченное на их запуск
systemd-analyze critical-chain - выводит диаграмму зависимостей юнитов и время, затраченное на запуск каждого из них
systemd-delta                  - показывает изменения в конфигурационных файлах, сделанные пользователем или системой
systemd-nspawn                 - запускает новый процесс в изолированном окружении
systemd-run                    - запускает произвольную команду в новом юните systemd
systemd-escape                 - кодирует или декодирует строку для использования в юнит-файлах systemd
journalctl                     - просмотр журнала системных сообщений
localectl                      - управление настройками локализации и клавиатуры
timedatectl                    - управление настройками времени и даты

journalctl
Доступ к журналу
gpasswd -a $USER wheel

Фильтрация сообщений по уровню ошибки

Вывод лога в текстовый файл
journalctl -b > /home/user/debug.log

Показывать записи журнала с момента запуска системы с расшифровкой ошибок:
journalctl -xb


journalctl -b # последняя загрузка
journalctl -b -1 # предыдущая загрузка

journalctl -b 0
journalctl -p err -b
journalctl -p err -b -1 -u NetworkManager

0 — EMERG (система неработоспособна);
1 — ALERT (требуется немедленное вмешательство);
2 — CRIT (критическое состояние);
3 — ERR (ошибка);
4 — WARNING (предупреждение);
5 — NOTICE (всё нормально, но следует обратить внимание);
6 — INFO (информационное сообщение);
7 —DEBUG (отложенная печать)

Просмотр сообщений ядра
journalctl -k
journalctl -k -b -2
journalctl --dmesg

Фильтрация по приложениям и службам
journalctl -u httpd.service -u mysql.service
journalctl -u nginx.service -u php-fpm.service —since today

Фильтрация по процессам, пользователям и группам

Просмотреть список всех доступных фильтров
man systemd.journal-fields

journalctl -F _PID # процессы
journalctl -F _UID # пользователи
journalctl -F _GID # группы

просмотреть логи всех процессов, запущенных от имени этого пользователя:
id -u www-data
journalctl _UID=33

Фильтрация по пути
journalctl /usr/bin/docker

фильтрация по дате и времени
journalctl --since "2017-05-05 00:01" --until "2017-05-06 01:40"


cat — только сообщения из логов без служебных полей;
export — бинарный формат, подходит для экспорта или резервного копирования логов;
short — формат вывода syslog;
short-iso — формат вывода syslog с метками времени в формате ISO 8601;
short-monotonic — формат вывода syslog c метками монотонного времени (monotonic timestamp);
short-precise — формат вывода syslog с метками точного времени (время событий указывается с точностью до микросекунд);
verbose — максимально подробный формат представления данных (включает даже те поля, которые в других форматах не отображаются).


Просмотр логов в режиме реального времени
journalctl -f

Просмотр информации о недавних событиях
journalctl -n
journalctl -n 20

Запись в журнал
systemd-cat echo "Текст сообщения"
journalctl -f
апр 18 01:14:13 arch1 echo[4822]: Текст сообщения

Поиск информации в журнале
journalctl SYSLOG_IDENTIFIER=Test
выводит все сообщения имеющие идентификатор сообщения Test.

Запись логов в стандартный вывод
journalctl --no-pager > log.txt

Выбор формата вывода
journalctl -u nginx.service -o json


Анализ этапа загрузки
Выявляем самые медленные процессы (от пользователя):

systemd-analyze blame
Выводим график загрузки процессов в векторный рисунок:

systemd-analyze plot > file.svg

Управление логгированием

Текущие разрешенные лимиты для журналов на диске и в памяти
systemctl status systemd-journald
journalctl -t systemd-journald

Все загрузки системы
journalctl --list-boots

Определение текущего объёма логов
journalctl --disk-usage

Настройка ротации логов в конфигурационном файле

/etc/systemd/journald.conf
/var/log/journal/

SystemMaxUse= максимальный объём, который логи могут занимать на диске;
SystemKeepFree= объём свободного места, которое должно оставаться на диске после сохранения логов;
SystemMaxFileSize= объём файла лога, по достижении которого он должен быть удален с диска;
RuntimeMaxUse= максимальный объём, который логи могут занимать в файловой системе /run;
RuntimeKeepFree= объём свободного места, которое должно оставаться в файловой системе /run после сохранения логов;
RuntimeMaxFileSize= объём файла лога, по достижении которого он должен быть удален из файловой системы /run.


systemctl restart systemd-journald # применить конфигурацию
journalctl --vacuum-size=100M # автоматически удалять все логи при превышении объёма
journalctl --vacuum-time=1months # Удалить все логии старше последнего месяца
systemctl status systemd-journald
journalctl -t systemd-journald

Централизованное хранение логов

С помощью команды systemd-journal-remote можно принимать логи с удалённых хостов
на каждом их этих хостов должен быть запущен демон systemd-journal-gatewayd
systemd-journal-remote −−url https://some.host:19531/

Команда systemd-journal-upload используется для загрузки логов с локальной машины в удалённое хранилище:
systemd-journal-upload --url https://some.host:19531/
journalctl -o export | systemd-journal-remote -o /tmp/dir -


coredumpctl
https://www.altlinux.org/Features/Core
5 инструментов из состава systemd, которые следует начать использовать прямо сейчас

Очистка списка coredumpctl
Сначала удалить журнал, удалив записи старше одного дня:
journalctl --vacuum-time=1d
Поскольку в списке «coredumpctl» перечислены файлы дампа, записанные журналом, вы можете вручную удалить файлы дампа из /var/lib/systemd/coredump, которых нет в списке.
coredumpctl list

Profile

uzverss: (Default)
uzverss

December 2024

S M T W T F S
12345 67
891011121314
15161718192021
22232425262728
293031    

Most Popular Tags

Style Credit

Expand Cut Tags

No cut tags
Page generated Jan. 21st, 2026 11:08 pm
Powered by Dreamwidth Studios