Система инициализации Systemd позволяет не только запускать и останавливать службы, но и проверять их состояние. Для просмотра информации о сервере используется команда status утилиты systemctl. Например, чтобы посмотреть состояние веб-сервера Nginx нужно выполнить такую команду:
sudo systemctl status nginx
Обычно, утилита выводит информацию с пагинацией поскольку данные не умещаются на один экран. Если вы хотите отключить пагинацию используйте опцию --no-pager:
sudo systemctl status nginx --no-pager
Давайте рассмотрим что выводит эта утилита:
- Loaded - значение loaded означает что файл юнита загружен успешно и здесь же выводится путь к этому файлу. Тут возможны и другие значения, например, masked если юнит скрыт или not-found если он не найден также здесь находится информация добавлен ли юнит в автозагрузку (enabled/disabled);
- Active - текущее состояние и подсостояние юнита, если юнит запущен, то обычно это active(running), если он не был запущен, то inactive(dead) если что-то пошло не так то failed и т д.
- Docs - название man страницы с документацией для службы.
- Process - запускаемые процессы, их состояние и код выхода.
- Main PID - идентификатор основного процесса службы.
- Tasks - количество процессов, запущенных в рамках этой службы.
- Memory - потребление памяти службой.
- CPU - использование процессора службой.
Для того чтобы посмотреть все доступные значения состояний для полей Loaded и Active выполните такую команду:
systemctl --state help
После всех этих полей выводится журнал службы. Это последние 10 строк вывода основного процесса. Если вы хотите получить больше строк используйте опцию --lines с нужным количеством строк. Например, для получения 50-ти последних строк выполните:
sudo systemctl status --lines=50 avahi-daemon
Если конец строки логов обрезается до ширины экрана, вы можете использовать опцию -l или --full для того чтобы этого избежать:
sudo systemctl status nginx.service
Для того чтобы посмотреть ещё больше логов можно воспользоваться утилитой journalctl с опцией -u которой надо передать название сервиса. например:
journalctl -eu nginx.service
Команда начнёт вывод логов с конца. Вы можете использовать клавиши со стрелками для того чтобы листать логи. Кроме того, можно посмотреть историю изменений статуса службы с помощью команды journalctl с опциями -xeu. Например:
journalctl -xeu nginx.service
Более подробно об управлении службами читайте в этой статье, а про journalctl в статье под названием Шпаргалка по Journalctl.
кайф