Найти в Дзене
takoedelo

службы linux.Что такое linux service и Daemon

Оглавление

Проще говоря, linux service( служба linux) - это программа или приложение в Linux, которое выполняется или ожидает запуска в фоновом режиме. То есть оно выполняется без необходимости того, чтобы пользователь постоянно знал об этом.

Что такое linux service сейчас расскажу
Что такое linux service сейчас расскажу

Daemon - это фактический термин для обозначения этих длительно выполняющихся фоновых процессов. Служба фактически состоит из одного или нескольких демонов.

Как правило, службы Linux обладают следующими характеристиками:

  • Нет графического интерфейса. То есть пользователи не могут взаимодействовать с ними через интерфейс.
  • Сервисы запускаются вместе с системой. Конечно, в данном случае я имею в виду системные сервисы. Сторонние сервисы, такие как MySQL, могут быть настроены на запуск или без запуска с системой.
  • При работе в фоновом режиме они ждут сигнала для запуска определенной задачи.

Эти функции не являются ограничительными для всех сервисов, но дают вам общее представление о том, что это такое.

Когда-то службы запускались с помощью init, который был самым первым запущенным процессом. Сведения о службах хранились в наборе скриптов, расположенных в каталоге "/etc / init / d". В дистрибутивах, отличных от systemd, это все еще имеет место.

В мире systemd службы запускаются с помощью systemd, который на данный момент запускается первым процессом. Сведения о службах хранятся в файлах unit, расположенных в каталоге "/usr/lib /systemd".

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

Поскольку здесь мы рассматриваем команды, специфичные для systemd, первое, что вам нужно знать, это используете ли вы systemd-based дистрибутив или нет.

init Или на основе systemd?

Подавляющее большинство дистрибутивов Linux используют systemd, включая Arch, Red Hat и Debian, а также многие производные от них дистрибутивы. Это включает семейство дистрибутивов Ubuntu, Fedora и ее спинов, а также Manjaro и другие дистрибутивы на основе Arch.

Однако существуют форки или разновидности некоторых из этих дистрибутивов, которые были созданы специально для того, чтобы избежать необходимости использования systemd. Кроме того, существуют и другие системы инициализации, которые кто-то может выбрать для использования вместо той, которая поставляется по умолчанию в их дистрибутиве, например, runit или s6-linux-init.

Если вам нужно администрировать компьютер с Linux, который вы не настраивали самостоятельно, единственный способ убедиться, использует ли он systemd или нет, - это проверить. Мы можем сделать это, просмотрев дерево процессов с помощью команды pstree. Нам нужно увидеть только самую вершину дерева - в конце концов, мы ищем самый первый запущенный процесс - поэтому мы передадим вывод через head команду и запросим первые пять записей.

pstree | head -5

-2

Мы видим, что systemd это первый процесс, который запускается после загрузки, так что мы определенно устанавливаем Linux на основе systemd.

Использование systemctl для составления списка служб

Команда для составления списка служб и демонов - это systemctl. Мы можем усовершенствовать systemctl команду с помощью параметров type и state. Мы просим systemctl сообщить о службах, которые находятся в запущенном состоянии.

systemctl --type=service --state=running

-3

Создается таблица с информацией.

-4

Чтобы просмотреть правый конец таблицы, нажмите клавишу со стрелкой вправо. Чтобы вернуться к обычному просмотру, нажмите клавишу со стрелкой влево.

-5

Нажмите клавишу Q, чтобы выйти.

  • Unit: имя службы или демона. Столбец называется "Unit", потому что все, что находится в этом столбце, было запущено с использованием информации, systemd найденной в файле unit.
  • Load: состояние загрузки службы или демона.
  • Active: общее состояние, в котором находится служба или демон.
  • SUB: подчиненное состояние службы или демона.
  • Description: Краткое описание модуля.

Мы можем передать вывод systemctl через grep, если хотим сосредоточиться на одной службе. Эта команда изолирует запись таблицы для ssh службы.

systemctl --type=service --state=running | grep ssh

-6

До сих пор мы фильтровали содержимое таблицы, предоставляя опцию state=running. Вместо этого мы можем использовать любое из возможных значений дочернего состояния:dead, exited, failed, inactive, or running.

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

systemctl --type=service --state=failed

-7

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

systemctl --type=service --state=failed,exited

-8

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

-9

По умолчанию, systemctl перечислены процессы ---службы и демоны --- которые были запущены systemd.Вот почему сокращенный термин для всех этих процессов "units."

Эти команды дают те же результаты.

sudo systemctl list-units --type= service --state =running

sudo systemctl --type=service --state=running

Использование systemctl для составления списка Unit-файлов

Мы можем расширить область применения systemctl команды, включив list-unit-files опцию. Это не просто отчет о запущенных службах и демонах, в нем также перечислены все модульные файлы, установленные на вашем компьютере.

systemctl list-unit-files --state=enabled

-10

Отображается цветная таблица.

-11

Удаление опции state удаляет фильтрацию. Выходные данные будут содержать все установленные модульные файлы, независимо от их состояния.

systemctl list-unit-files

-12

Выходные данные будут содержать намного больше записей, чем результаты предыдущих команд.

-13

На нашем тестовом компьютере список результатов почти в четыре раза длиннее, чем результат наших предыдущих команд.

Если вы хотите использовать опцию state, вы можете использовать с ней несколько состояний, как мы видели ранее. Применяются те же правила. Укажите параметры в виде значений, разделенных запятыми, и не включайте никаких пробелов.

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

systemctl list-unit-files --state=enabled,failed

-14

Отображается уменьшенное количество результатов, отфильтрованных в соответствии с выборками, которые вы сделали с помощью параметра state .

-15

Подробно рассмотрим одну службу

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

Давайте посмотрим на SSH-демон, sshd. Все, что нам нужно сделать, это использовать параметр status и имя службы или демона.

systemctl status sshd

-16
  • Название службы вместе с кратким описанием. Цветная точка показывает, запущена она или нет. Зеленый означает, что она запущена, красный - нет.
  • Что было загружено, включая путь к файлу unit.
  • Как долго он работает.
  • Документация находится в man руководстве.
  • Идентификатор процесса запущенного экземпляра.
  • Сколько одновременных экземпляров этой службы запущено. Обычно это будет один.
  • Сколько памяти потребляется.
  • Сколько процессорного времени было израсходовано.
  • Контрольная группа, к которой принадлежит служба.

Также отображаются соответствующие записи из системного журнала. Обычно это такие события, как запуск службы. Они могут быть информативными, если вы просматриваете службу или демон, которые запускались некорректно.

Автономные системы

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

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

10 альтернативных операционных систем

11 лучших дистрибутивов Linux на основе Debian

Как установить Microsoft Office на Linux

Как работает ядро Linux? анатомия ядра Linux

Какой длины может быть кабель Ethernet до потери сигнала?

Ставьте лайк .Смотрите другие наши статьи,подписывайтесь на канал чтобы не пропустить интересное.