Как управлять службами с помощью Systemd

Запуск systemd

Один из самых важных навыков, который может освоить любой новичок в Systemd, - это управление службами своего компьютера. В этой статье мы обсудим основы: запуск, остановку, включение и отключение служб из командной строки Linux.

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

Что такое Systemd?

Скорее всего, на вашем компьютере Linux в настоящее время работает Systemd. Многие дистрибутивы, включая Arch Linux, Debian, Fedora, Red Hat и Ubuntu, используют его по умолчанию. Некоторые дистрибутивы было бы сложно или невозможно запустить без его установки.

Systemd работает, прежде всего, как надежная замена старому проекту init SysV, который дистрибутивы UNIX использовали с 1980-х годов. Ключевой разработчик Леннарт Поеттеринг также заявил, что Systemd выходит за рамки задач инициализации и может также выступать в качестве платформы разработки и связующего звена между отдельными приложениями и ядром Linux.

Это вызвало много негодования в платформе Poettering в целом, в первую очередь потому, что ее монолитность, похоже, действует против "пути UNIX" простого модульного кода.

Какую бы сторону вы ни выбрали в дебатах о легитимности Systemd, вы все равно можете попасть под его крыло в эту секунду. Следовательно, вам нужно знать, как ее использовать, и нет лучшего способа начать работу, чем установить новую программу.

Пусковые и останавливающие устройства

Systemd запускает, останавливает, включает и отключает "единицы". Единицы состоят из служб, точек монтирования, устройств и сокетов на вашем компьютере. В этих инструкциях вы будете работать со службами (файлами .service), файлами, которые представляют программы на вашем компьютере, ожидающие доступа для выполнения определенной задачи.

Несколько дистрибутивов Linux имеют доступ к Hddtemp, небольшой утилите, которая проверяет температуру жесткого диска. Hddtemp имеет файл .service и может работать как демон, поэтому вы можете запустить его вручную и разрешить запуск при загрузке. Он маленький и неинвазивный; вы можете скачать его, попробовать вместе с Systemd и удалить позже, если он вам не нужен.

Установите его на Arch с помощью:

и в Ubuntu с помощью:

Теперь запустите новую утилиту с помощью Systemd:

Затем вы можете перезапустить, остановить и просмотреть состояние man-db с помощью той же команды стиля - systemctl unit. Обратите внимание, что "unit" работает как сокращение для любого файла "unit.service", который вы будете использовать.

Системный старт

Команды sudo systemctl start hddtemp, sudo systemctl stop hddtemp и sudo systemctl restart hddtemp по умолчанию при успешном выполнении не выводят никаких результатов.

Вы можете получить более подробную информацию об услуге:

В этом случае команда показывает название службы, ее состояние (активное или неактивное), а также запуск / остановку, имевшую место за последние несколько минут. Если какая-либо из вышеперечисленных команд не удалась или вызвала ошибку, эти проблемы отобразятся в отчете о состоянии.

Включение и отключение устройств

Когда вы запускаете или останавливаете модуль, вы выполняете ручной процесс, который, скорее всего, продлится только в течение вашего текущего сеанса. При перезагрузке запущенное вами устройство может не запуститься автоматически.

Чтобы блоки запускались при загрузке, попробуйте включить их с помощью Hddtemp:

Выходные данные здесь показывают, что Systemd создал символическую ссылку, чтобы сказать себе запустить Hddtemp, когда ваш компьютер проходит процесс загрузки. В будущем смело используйте ярлык:

для включения и запуска устройства одной командой.

Systemd включить

Теперь вы можете так же легко отключить Hddtemp:

Если вы когда-либо не уверены, включен ли модуль, вы можете запустить sudo systemctl is-enabled unit, чтобы выяснить это.

Теперь вы можете удалить Hddtemp со своего компьютера, если он вам не нужен.

Заключение

Эти команды - конечный результат сложной машины, которой является Systemd. Нравится вам это или нет, но нельзя отрицать, что если вы используете Systemd, эти команды станут полезными для управления программами на вашем компьютере.

Ознакомьтесь с разделом "КОМАНДЫ" на странице руководства по Systemctl с помощью man systemctl. Вы найдете эти же команды - запуск, останов, включение, отключение - наряду со многими другими, которые так же просты в использовании, но будут копать глубже, чем эти базовые примеры, показанные здесь.