Не поверите! Вот 4 команды systemd, которые навсегда избавят ваш Linux от проблем

systemd logo and the Linux mascot using a laptop in front.

Systemd вызывает массу споров: одни его ругают, другие защищают. Но что неоспоримо — почти во всех современных дистрибутивах Linux именно systemd используется “из коробки”. Хотите жить проще? Освойте его основные инструменты, и многие проблемы будут решаться в пару команд. Ниже мой личный топ-4 утилит systemd, которые уже не раз экономили мне часы разбирательств.

Systemctl: Современное управление службами

Systemctl — главный инструмент для работы со службами в Linux на базе systemd. С его помощью можно запускать, останавливать, перезапускать сервисы и управлять их автозагрузкой. Видите неполадку? Начинайте с просмотра статуса нужной службы. Чтобы быстро увидеть все активные службы, достаточно одной команды:

Using systemctl to list all active service units

Хотите найти, что работает с ошибками? Просто добавьте фильтр по статусу и получите список проблемных служб:

Using systemctl to list all failed service units

Для полной картины я обычно просматриваю и активные, и остановленные сервисы:

Using systemctl to list active and inactive units

Если нужно проверить, что с конкретной службой (например, моим сервисом смены обоев) — смотрю её статус через systemctl. Там же видно, включена ли автозагрузка этого сервиса, и при желании это тут же меняется.

Запуск, остановка или перезапуск службы — вопрос нескольких секунд. Так же просто добавить сервис в автозагрузку или наоборот, убрать лишнее.

Не разобрались с командой? В любой момент вызывайте справку:

Journalctl: Мгновенный доступ к логам и поиск ошибок

Systemctl — для управления, а для глубокого анализа логов и поиска проблем незаменим journalctl. Этот инструмент не раз вручал меня, когда сервер или домашний комп начинал “капризничать”, ведь он хранит все логи systemd в одном месте.

Обычно фильтрую журнал по определённой службе. Например, когда настраивал автосмену обоев через systemd, journalctl сразу показал, где запнулся скрипт.

The GNOME 47 default desktop with the wallpaper selector open.

«Бесконечный рабочий стол» на Ubuntu: автоматическая смена обоев через Python и systemd

Свежие фото из Unsplash сами появляются у вас на рабочем столе — всё работает на Python и systemd-таймере.

Journalctl позволяет просматривать логи сразу для нескольких сервисов, а при поиске багов удобно фильтровать по времени. Например, опция ‘since’ вытаскивает только события начиная с нужной даты — так проще всего поймать, в какой момент случилась беда:

Using journalctl to show time-based service logs

Также можно посмотреть логи только текущей или предыдущей загрузки:

journalctl to show current boot log files

Хотите видеть логи “в реальном времени”? Используйте опцию -f — и получите всё, что происходит прямо сейчас.

Using journalctl to show a live log file output

Если нужно выяснить, почему служба не запускается, пробуйте journalctl с опциями xe для подробной диагностики:

Using journalctl xe option

Можно ограничить вывод нужным количеством строк или сразу вывести последние события.

Хотите узнать все фишки journalctl? Вперед к справке:

Systemd-analyze: Какие службы тормозят вашу Linux?

Linux стал грузиться медленно? Не терпите, а запускайте systemd-analyze! С его помощью видно, сколько секунд занимает загрузка системы и отдельных сервисов — виновник находится мгновенно. Я всегда начинаю проверку с общего времени загрузки:

systemd-analyze basic

Если подозреваете, что какой-то сервис тормозит загрузку, но не знаете какой — команда blame покажет затраченные секунды для каждого процесса:

A screenshot of systemd-analyze blame command

Любите красивые графики? Systemd-analyze строит SVG-диаграмму загрузки: самые длинные полосы — самые медленные сервисы, с них и надо начинать оптимизацию.

Если застряли с незнакомой командой — справка всегда под рукой:

Coredumpctl: Почему падает программа? Разбираемся за минуту

Если сервисы внезапно «падают» или что-то “крашится” без видимой причины, coredumpctl сэкономит вам кучу нервов и времени. Иногда утилиту нужно поставить отдельно — достаточно выполнить sudo apt install systemd-coredump. После этого смотрите таблицу всех сбоев и аварий:

A screeshot of the coredumctl list command

Если знаете номер процесса (PID), можно сразу разобраться в деталях сбоя по конкретной программе:

A screenshot showing how to use coredumpctl to inspect a program usings its PID

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

Using coredump to filter core dump by name

Справка по coredumpctl:

Это — только малая часть мощных возможностей systemd. Освоив эти четыре инструмента, вы будете разбираться с проблемами Linux быстрее и увереннее. Верьте: однажды попробовав — уже не вернётесь к старым методам!

Если вам понравилась эта статья, подпишитесь, чтобы не пропустить еще много полезных статей!

Премиум подписка — это доступ к эксклюзивным материалам, чтение канала без рекламы, возможность предлагать темы для статей и даже заказывать индивидуальные обзоры/исследования по своим запросам!

Подробнее о том, какие преимущества вы получите с премиум подпиской, можно узнать здесь

Также подписывайтесь на нас в:

Алекс Бежбакин
Оцените автора
Добавить комментарий