Вывести список служб linux

Список служб Linux с помощью Systemctl

В Linux служба — это программа, работающая в фоновом режиме . Службы можно запускать по запросу или во время загрузки.

Если вы используете Linux в качестве основной операционной системы или платформы разработки, вы будете иметь дело с различными службами, такими как веб-сервер, ssh или cron . Знание того, как перечислить запущенные службы или проверить статус службы, важно при отладке системных проблем.

Большинство последних дистрибутивов Linux используют systemd в качестве системы инициализации и диспетчера служб по умолчанию.

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

В этой статье объясняется, как составить список служб в Linux.

Список служб Linux

Systemd использует концепцию модулей, которыми могут быть службы, сокеты, точки монтирования, устройства и т. Д. Модули определяются с помощью текстовых файлов в формате ini . Эти файлы содержат информацию об устройстве, его настройках и командах для выполнения. Расширения файлов определяют тип файла модуля. Например, файлы системных сервисных модулей имеют расширение .service .

Читайте также:  Чем вывести пятна калины

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

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

Каждая строка вывода содержит следующие столбцы слева направо:

  • UNIT — Название сервисной единицы.
  • LOAD — Информация о том, загружен ли файл объекта в память.
  • ACTIVE — состояние активации файла модуля высокого уровня, которое может быть активным, перезагружающимся, неактивным, неудачным, активируемым, деактивируемым. Это обобщение столбца SUB .
  • SUB — состояние активации файла юнита низкого уровня. Значение этого поля зависит от типа объекта. Например, модуль типа service может находиться в одном из следующих состояний: неработающий, завершенный, сбойный, неактивный или работающий.
  • DESCRIPTION — Краткое описание файла объекта.

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

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

Отображение статуса службы

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

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

Команда напечатает следующую информацию:

  • Loaded — Loaded ли служебный модуль и полный путь к файлу модуля. Он также показывает, разрешен ли запуск устройства во время загрузки.
  • Active — активна и работает ли служба. Если ваш терминал поддерживает цвета, а служба активна и работает, точка ( ● ) и часть «активен (работает)» будут напечатаны зеленым цветом. Строка также показывает, как долго работает служба.
  • Docs — служебная документация.
  • Process — информация о процессах обслуживания.
  • Main PID — сервисный PID.
  • Tasks — количество задач, учитываемых для объекта, и лимит задач.
  • Memory — информация об используемой памяти.
  • CGroup — информация о связанных контрольных группах.

Если вы хотите только проверить статус службы, используйте команду systemctl is-active . Например, чтобы убедиться, что служба nginx запущена, вы должны запустить:

Команда покажет вам статус службы. Если служба активна, команда возвращает статус выхода 0, что может быть полезно при использовании команды внутри сценариев оболочки.

Выводы

Мы показали вам, как использовать команду systemctl для systemctl списка служб Linux и проверки их статуса.

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

Источник

👦 Как перечислить службы в Linux

В этой статье я покажу вам, как составить список всех запущенных сервисов в Linux.

Мы также проверим, как проверить статус службы в системе systemd.

Давайте изучим различные команды, используемые для перечисления сервисов в Centos / RHEL 7.x.

Проверить и перечислить сервисы linux (systemd на Centos / RHEL 7.x / Ubuntu /)

Для просмотра списка системных служб запустите

Пример, кстати выполнен на системе Ubuntu 🙂

Для просмотра списка активных сервисов systemd

Другая команда, которую вы можете использовать,

Вы можете направить вывод в grep для поиска более конкретной службы, как показано ниже

Перечисление сервисов с помощью команды Netstat

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

Он доступен во всех дистрибутивах Linux, и здесь мы проверим, как составить список сервисов с помощью команды netstat.

Чтобы проверить услуги с портами, которые они слушают:

Просмотр файла /etc/ services

Файл /etc/services представляет собой файл ASCII, который содержит информацию о многочисленных службах, которые клиентские приложения могут использовать на компьютере.

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

ITO put t указывает, является ли служба TCP или UDP, и имя, которое она называет в соответствии с IANA.

Эта информация полезна, особенно если вы не уверены, какая служба работает на каком порту по умолчанию.

Чтобы получить более четкое представление, просмотрите файл /etc/services с помощью любого текстового редактора.

Проверка состояния системных служб

В более новых версиях Linux присутствует Systemd init.

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

Например, чтобы проверить, работает ли OpenSSH в вашей системе, запустите

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

В этом случае, чтобы проверить, активен ли OpenSSH, выполните

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

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

Проверка статуса услуг в старых системах (Centos / Rhel 6.x / Ubuntu)

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

Например, чтобы проверить состояние OpenSSH, запустите

Вы также можете проверить все службы, запустив

Источник

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

Главное меню » Операционная система Linux » Как перечислить все запущенные службы в Linux с помощью командной строки

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

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

Инструмент командной строки ‘service’

Команда «service» поставляется с предустановленной почти с каждым дистрибутивом Linux. Хотя основной целью является запуск и остановка сценариев и создание процессов, «service» также может использоваться для просмотра того, какие службы запущены или остановлены в любой момент. Используя простую команду, нам предоставляется полный список услуг:

Когда вы запустите это, появится такой же результат:

Как вы можете видеть, список услуг предоставляется в виде вывода с символом слева от имени службы. Символ «+» означает, что служба запущена, «-» означает, что она остановлена, а «?» означает, что статус в настоящее время не известен. Когда это используется в сочетании с инструментом поиска, таким как «grep», найти определенные сервисы, которые выполняются, очень легко сделать. Затем вы можете проверить статус на основе процесса, введя команду статуса для определенного процесса:

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

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

ps -aux

Вы можете использовать это в сочетании с командой «меньше» для дальнейшего улучшения удобочитаемости. При выполнении этой команды нам дается подробная информация о каждом запущенном процессе. Вы также можете использовать команду grep, чтобы сузить результаты до определенного имени процесса, идентификатора процесса и т. д.

Инструмент командной строки ‘top’

«top» – это встроенный инструмент, предназначенный для обзора всех процессов и служб, выполняемых в настоящее время на вашем компьютере. Он включен в дистрибутивы на основе Debian и RedHat и предлагает множество функций, которые помогут вам понять, что происходит на вашем сервере. Вы можете начать «сверху», просто нарисуя верхнюю часть в командной строке. Вот как это должно выглядеть:

Он может выглядеть немного загроможденным, но большая часть этой информации очень полезна. Например, мы можем видеть, как долго работала система, средняя загрузка, сколько пользователей вошли в систему, сколько процессов (задач) работает, спать и т. д., А также информацию об объеме памяти, который у нас есть и доступны на сервере. Top становится еще более подробно, вплоть до уровня, специфичного для процесса. В каждом столбце отображается определенное значение, которое коррелирует с процессом, который выполняется. Мы можем видеть, кто владеет процессом, сколько памяти он использует, сколько используется процессор, имя команды и идентификатор процесса, который является уникальным для этого процесса, и помогает нам идентифицировать его, если есть более одного из тот же процесс. Используя всю эту информацию, мы можем точно видеть, что делает каждый процесс, и сколько ресурсов каждый процесс использует,

Htop очень похож на «top» с точки зрения его основных функций и функциональности. Обычно он не включен в установку операционной системы по умолчанию, однако он доступен для большинства, если не для всех дистрибутивов Linux, через свои предварительно установленные программные репозитории. Подобно top, htop позволяет пользователю просматривать подробную информацию о каждом процессе, а также следить за самой системой. Тем не менее, htop позволяет намного более точно контролировать отображаемую вами информацию, а также предлагать набор утилит, которые могут применяться к процессам.

Например, через htop вы можете настроить тонкость (приоритет) процесса, убить его с различными уровнями силы и т. д. Существует также сортировка, которая упрощает просмотр только важной для вас информации. Выбор процесса возможен с помощью пробела, что упрощает отслеживание и отслеживание определенного процесса (или процессов, поскольку вы можете выбрать более одного за раз). И с функцией поиска, еще проще проверить и обратить внимание на конкретные процессы. Htop даже имеет гистограмму, которая представляет различные системные ресурсы, позволяя вам легко видеть, сколько выделяется процессор или ОЗУ.

Вот пример того, как выглядит htop:

С барами наверху, легко понять, как ваша система работает с одним взглядом, а также настраиваемая подробная информация, доступная под ними.

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

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

Источник

Управление службами Linux

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

В этой статье мы рассмотрим управление службами Linux. Мы не будем трогать уже устаревшие системы, такие как SysVinit, сосредоточимся только на Systemd. Вы узнаете, как посмотреть запущенные службы linux, а также останавливать и запускать их самому.

Немного теории

Чтобы всем этим управлять нужна основная служба — система инициализации, которая будет запускать службы linux в нужный момент, следить чтобы они нормально работали, записывать сообщения логов, и самое главное позволять останавливать службы. Раньше, для управления службами использовались скрипты. Я уже говорил, что можно запустить службу из терминала, так вот, каждая служба запускалась в фоновом режиме одна за другой, без возможности параллельного запуска и возвращала свой PID процесса скрипту инициализации, он сохранялся и потом с помощью этого PID можно было проверить работает ли служба и остановить службу linux если это нужно. Все это можно сделать и вручную.

Но потом на смену этому методу пришла новая модель и система инициализации systemd. Система инициализации запускается сразу после загрузки ядра и начинает инициализировать службы, теперь появилась возможность параллельной инициализации, а также зависимостей между службами. Таким образом, теперь можно определить сложное дерево порядка запуска служб. Но мы не будем вникать в подробности создания служб, нас интересует только сам процесс запуска. После запуска systemd собирает весь вывод службы в лог, и следит за ее работой, если служба аварийно завершилась, то автоматически ее перезапускает.

Служба в Systemd описывается файлом юнита, в нем описано что с ней нужно делать и как себя вести. Существуют такие типы служб:

  • service — обычная служба, программа
  • target — группа служб
  • automount — точка автоматического монтирования
  • device — файл устройства, генерируется на этапе загрузки
  • mount — точка монтирования
  • path — файл или папка
  • scope — процесс
  • slice — группа системных служб systemd
  • snapshot — сохраненное состояние запущенных служб
  • socket — сокет для взаимодействия между процессами.

Нас будут интересовать только service, и совсем немного target, но мы рассмотрели все остальные, чтобы вы смогли взглянуть на картину немного шире. Основы рассмотрели, теперь будет настройка служб LInux.

Утилита systemctl

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

$ systemctl опции команда служба служба.

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

Рассмотрим все по порядку. Опции очень сильно зависят от команд, поэтому рассмотрим их позже, а пока пройдемся по командах:

  • list-units — посмотреть все службы (юниты), аналог опции -t
  • list-sockets — посмотреть все службы сокетов
  • start — запустить службу linux
  • stop — остановить службу linux
  • reload — обновить конфигурацию службы из файла юнита
  • restart — перезапустить службу
  • try-restart — перезапустить службу, только если она запущена
  • reload-or-restart — обновить конфигурацию затем выполнить перезапуск службы linux, если не поддерживается — только перезапустить
  • isolate — запустить только одну службу вместе с ее зависимостями, все остальные остановить
  • kill — отправить сигнал завершения процессу используется вместе с опциями —signal и —kill-who
  • is-active — проверить запущена ли служба linux
  • is-failed — проверить не завершилась ли служба с ошибкой
  • status — посмотреть состояние и вывод службы
  • show — посмотреть параметры управления службой в Linux
  • reset-failed — перезапустить службы linux, завершившиеся с ошибкой
  • list-dependencies — посмотреть зависимости службы linux
  • list-unit-files — вывести все установленные файлы служб
  • enable — добавить службу в автозагрузку
  • disable — удалить службу из автозагрузки
  • is-enabled — проверить если ли уже служба в автозагрузке
  • reenable — сначала выполнить disable потом enable для службы
  • list-jobs — все запущенные службы linux независимо от типа
  • snapsot — сохранить состояние служб, чтобы потом восстановить
  • daemon-reload — обновить конфигурацию всех служб
  • mask — сделать юнит недоступным
  • unmask — вернуть файл службы linux

А теперь основные опции:

  • -t, —type — тип служб для вывода
  • -a, —all — показать все известные службы, даже не запущенные
  • -q — минимальный вывод
  • —version — версия программы
  • —no-pager — не использовать постраничную навигацию
  • —no-legend — не выводить подробное описание
  • -f — принудительное выполнение команды
  • —runtime — не сохранять вносимые изменения после перезагрузки
  • -n — количество строк вывода лога для команды status
  • —plain — использовать обычный текстовый режим вместо деревьев
  • —kill-who — задать процесс, которому нужно отправить сигнал
  • —signal — сигнал, который нужно отправить.
  • —state — отфильтровать список служб по состоянию.

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

Управление службами Linux

Теперь, когда вы уже знаете все основы, команды и параметры можно переходить к делу. Со всеми остальными тонкостями разберемся по пути. Сначала давайте посмотрим запущенные службы linux. Нас будут интересовать только программы, а не все эти дополнительные компоненты, поэтому воспользуемся опцией type:

systemctl list-units —type service

Команда отобразила все службы, которые известны systemd, они сейчас запущены или были запущены. Программа не пересматривает все файлы, поэтому будут показаны только те службы, к которым уже обращались. Состояние loaded — означает, что конфигурационный файл был успешно загружен, следующая колонка active — служба была запущена, а running или exited значит выполняется ли сейчас служба или она успешно завершила свою работу. Листать список можно кнопками вверх/вниз.

Следующая команда позволяет получить список служб linux, в который входят все службы, даже не запущенные, те, которые не запускались, но известны systemd, но это еще не все службы в системе:

systemctl list-units —type service -all

Дальше больше. Вы можете отсортировать список служб systemctl по состоянию. Например, только выполняющиеся:

systemctl list-units —type service —state running

Или те, которые завершились с ошибкой:

systemctl list-units —type service —state failed

Для фильтрации можно брать любой показатель состояния из любой колонки. Другой командой мы можем посмотреть все файлы конфигурации служб на диске. Тут не будем фильтровать по типу, пусть программа покажет все:

Теперь отфильтруем только службы linux:

systemctl list-unit-files —type service

Здесь вы тоже можете использовать фильтры по состоянию. Теперь вы знаете как посмотреть запущенные службы linux, идем дальше.

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

sudo systemctl start application.service

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

Остановить службу linux можно командой:

sudo systemctl stop application

Посмотреть состояние службы позволяет команда status:

sudo systemctl status application

Здесь вы можете видеть, состояние running, exited, dead, failed и т д. А также несколько последних строчек вывода программы, которые очень помогут решить проблему с запуском если она возникнет.

Автозагрузка служб в systemd

Как вы знаете, systemd позволяет автоматически загружать службы при запуске системы по мере их надобности. Команда list-unit-files показывает добавлена ли служба в автозагрузку.

Вообще, здесь может быть несколько состояний — enabled — в автозагрузке, disabled — автозагрузка отключена, masked — служба скрыта и static — значит что служба в автозагрузке, но вы не можете ее отключить.

Поэтому чтобы получить список служб linux, запускаемых автоматически достаточно отфильтровать ее вывод по состоянию:

systemctl list-unit-files —state enabled

Все службы, запускаемые по умолчанию. Можете также посмотреть службы static. Чтобы добавить службу в автозагрузку linux используйте команду enable:

sudo systemctl enable application

А для того чтобы убрать ее из автозагрузки:

sudo systemctl disable applciation

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

sudo systemctl is-enabled application

Утилита просто выведет состояние enabled, disabled или static.

Выводы

Теперь настройка служб Linux не вызовет у вас проблем. Много чего мы упустили, systemd — очень большая, сложная и многофункциональная система, которую не охватить в одной статье. Но и также очень сложно понять. Но я думаю, что все, что касается управления службами Linux мы разобрали. Если у вас остались вопросы, спрашивайте в комментариях!

Источник

Оцените статью