Поиск по сайту:
Девиз исследовательской лаборатории: "О том, над чем мы работаем сегодня, другие подумают только завтра". (Алан.Дж.Перлис)

Что такое Systemctl и как вы должны его использовать?

12.10.2024
Что такое Systemctl и как вы должны его использовать?

Systemd — это популярная система инициализации, которая служит инструментом управления различными системами в операционной среде Linux. С помощью systemd мы можем выполнять важные административные функции и задачи по обслуживанию, такие как управление системными ресурсами, настройка параметров запуска, ведение журналов и протоколирование. В то же время systemctl — это команда, используемая для управления службами systemd, которые в настоящее время являются стандартными для Linux.

Леннарт Поеттеринг — разработчик systemd, инженер-программист, который сейчас работает в Microsoft. Ранее Леннарт Поеттеринг также создал противоречивые программы, а именно Avahi и PulseAudio.

 

Соглашения

# — указанные команды должны выполняться с правами суперпользователя либо напрямую от имени пользователя root, либо с помощью команды sudo
$ — указанные команды должны выполняться от имени обычного пользователя

 

Система инициализации – это первый процесс после того, как ядро Linux вступает в действие в процессе загрузки. Он инициализирует различные службы управления устройствами, ведения журнала и сетевые службы. ‘service’ – это устаревшая команда, которая используется в старых версиях систем Linux / Unix. Инструмент используется для запуска, остановки системных служб и управления ими. Он по-прежнему доступен во многих современных системах, но большинство дистрибутивов Linux используют systemctl уже сейчас.

Systemd действительно вызывает споры по нескольким причинам. Во-первых, многие люди думают, что systemd не уважает философию Unix. Утверждается, что systemd слишком сложный и монолитный, что затрудняет устранение неполадок. Во-вторых, некоторые критики systemd утверждают, что systemd – это не только система инициализации, но и берет на себя множество функций. Например, systemd пытается управлять сетью, cron, fstab, системным журналом и т.д. Это означает, что systemd – это не программа с единственным назначением, а с множеством функций. Наконец, systemd подвергается критике за то, что его файл журнала не основан на тексте, как обычные журналы Unix и Linux. Вместо этого это двоичный файл журнала.

Читать  Как установить и играть в тетрис на Ubuntu?

Среди упомянутых выше критических замечаний в адрес systemd некоторые просто несостоятельны. Например, systemd не считается модульной системой. Леннарт Поеттеринг отвечает на такие замечания на своей странице в блоге под названием «Самые распространённые мифы».

Большинство основных дистрибутивов Linux, таких как UbuntuAlmaLinux и Gentoo, теперь используют systemd в качестве системы инициализации по умолчанию. Debian поздно внедрил systemd в свой релиз, потому что многие разработчики отвергли его. В результате несколько разработчиков Debian, которые отвергли systemd, создали новый дистрибутив на основе Debian, Debian без systemd, под названием Devuan. Devuan — это Debian, который по-прежнему использует sysvinit.

Спустя несколько лет большинство согласится с тем, что systemd — это современная система, противоположная sysvinit. Sysvinit должен был исчезнуть из мира инициализации, потому что управление службами с помощью скриптов — непростая и сложная задача. Ubuntu когда-то заменила Sysvinit на Upstart, но затем отказалась от него и перешла на systemd. В systemd используется файл конфигурации, называемый юнитом. Создать файл юнита также просто благодаря его конфигурации в стиле ini.

 

Команды systemd

Ниже приведены несколько команд, которые вы можете использовать для управления своими сервисами с помощью systemd.

Чтобы перезапустить службу, используйте systemctl restart. Например, перезапустите nginx.

# systemctl restart nginx

 

Для запуска, остановки и перезагрузки замените restart на start, stop или reload .

Читать  Как составить список всех групп в Linux

Systemctl также может запускать / останавливать / перезапускать несколько служб с помощью одной команды, например:

# systemctl restart nginx mysql postfix

 

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

# systemctl enable nginx

 

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

# systemctl enable --now nginx

 

Чтобы отключить службу при запуске, введите

# systemctl disable apache2

 

Если вам нужно просмотреть файл systemd сервиса, вы можете ввести следующий пример:

# systemctl cat nginx

 

Чтобы перезапустить сервер, вы должны использовать:

# systemctl reboot

 

Для завершения работы сервера используется следующая команда:

# systemctl poweroff

 

Если вы хотите просмотреть текущие журналы, используйте:

# journalctl -f

 

Для просмотра журналов службы вы можете использовать следующее:

# journalctl -u mysql

 

Вы можете использовать команду, аналогичную приведенной ниже, при поиске определенного диапазона дат. В этом случае мы просматриваем журналы с 29 по 31 августа.:

# journalctl --since "2024-08-29" --until "2024-08-31"

 

Наконец, для просмотра самых последних журналов вы можете использовать следующую команду:

# journalctl --since "3 hours ago"

 

Как и команда service, systemctl – очень универсальная команда. Она позволяет включать, перезагружать, запускать, останавливать и проверять состояние служб, запущенных на вашем компьютере с Linux. Systemctl служит простым в использовании и мощным интерфейсом для настройки файлов в systemd. Например, требуется всего одна или две команды, чтобы отключить службу при загрузке с помощью systemctl.

Читать  Как создать новый файл в Vim?

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

Наиболее существенное различие между service и systemctl заключается в том, что они принадлежат разным системам инициализации. Service относится к классическому процессу инициализации Linux SysVinit (System V Init). Systemctl принадлежит systemd, преемнику SysVinit, и современный процесс инициализации используется во многих системах Linux. Потому что service и systemctl являются частью разных процессов инициализации. Они работают с системными файлами инициализации в разных каталогах. Сервис работает с файлами системы инициализации, находящимися в /etc/init.d . В то же время systemctl работает с файлами системы инициализации, находящимися в /lib/systemd.

Systemd запускает службы параллельно, а не последовательно, поэтому время загрузки у него быстрее, чем у SysVinit. Он также предлагает несколько более сложное управление системными демонами через интерфейс командной строки (CLI).

 

Заключение

Вот и все! Вам больше не нужно спрашивать, что такое systemctl, и теперь вы знаете, как им пользоваться.

Если вам понравился этот пост “Что такое systemctl и как его использовать”, пожалуйста, поделитесь им со своими друзьями. Спасибо.

Если вы нашли ошибку, пожалуйста, выделите фрагмент текста и нажмите Ctrl+Enter.

1 Звезда2 Звезды3 Звезды4 Звезды5 Звезд (1 оценок, среднее: 5,00 из 5)
Загрузка...
Поделиться в соц. сетях:


5 1 голос
Рейтинг статьи
Подписаться
Уведомить о
guest

**ссылки nofollow

0 комментариев
Старые
Новые Популярные
Межтекстовые Отзывы
Посмотреть все комментарии

Это может быть вам интересно


Рекомендуемое
Performance-маркетинг – это подход в интернет-маркетинге, который фокусируется на достижении…

Спасибо!

Теперь редакторы в курсе.