- Управление сервисами в Linux. Команда systemctl
- Что такое сервисы в Linux
- Список сервисов
- Запуск сервиса
- Останов сервиса
- Перезапуск сервиса
- Автозагрузка сервисов
- Статус сервиса
- Заключение
- Список служб Linux с помощью Systemctl
- Список служб Linux
- Отображение статуса службы
- Выводы
- Как перечислить все запущенные службы в Linux с помощью командной строки
- Инструмент командной строки ‘service’
- ps -aux
- Инструмент командной строки ‘top’
- Как просмотреть статус службы в Linux с помощью systemctl
- Просмотр статуса сервиса:
- Как просмотреть статус службы под названием nginx
- Понимание состояний службы / модулей systemd
- В настоящее время systemd поддерживает следующие модули
- Чтобы показать все установленные файлы модулей, используйте:
- Linux просмотр статуса службы
- Как вывести список модулей, которые systemd в настоящее время имеет в памяти
- Список systemd/systemctl всех отказавших модулей units/services в Linux
- Что делать, если такой сервис, как nginx, не запущен?
- Как просмотреть источник файла службы / модуля systemd
- Вывод
Управление сервисами в Linux. Команда systemctl
Что такое сервисы в Linux
Сервисы или службы — это программы, которые работают в системе Linux в фоновом режиме. Обычно они запускаются при загрузке системы. Большинство сервисов необходимы для полноценной работы системы, то есть они являются своего рода кирпичиками, из которых строится работающая система.
При запуске системы загружается целый ряд сервисов, которые включены для автозагрузки. Сервисы работают пока система запущена, и выгружаются при выключении системы.
Чаще всего в Linux дистрибутивах для инициализации сервисов используется демон Systemd. К Systemd-дистрибутивам относятся Ubuntu, Debian, Linux Mint, Fedora, openSUSE, Solus и другие.
Есть дистрибутивы, которые не используют Systemd. Вместо Systemd могут использоваться такие системы инициализации, как Upstart, SysV.
В качестве примеров сервисов можно привести: веб-сервер Apache, Network Manager, файрвол Ufw и другие.
Для управления сервисами (Systemd) используется утилита systemctl . Ниже мы рассмотрим основные команды данной утилиты.
Список сервисов
Чтобы просмотреть список всех сервисов можно воспользоваться командой:
Данная команда пробегает по алфавитному списку всех доступных сервисов и выполняет для них команду status.
В выводе команды используются следующие обозначения:
- [ + ] — запущенный сервис.
- [ — ] — остановленный сервис.
- [ ? ] — для данного сервиса отсутствует команда status.
Запуск сервиса
Для запуска сервиса используется команда systemctl start имя_сервиса
Останов сервиса
Для остановки сервиса используется команда systemctl stop имя_сервиса
Перезапуск сервиса
Перезапуск сервиса выполняется командой systemctl restart имя_сервиса
Обычно перезапуск конкретного сервиса требуется, когда были изменены настройки данного сервиса.
Некоторые сервисы поддерживают «мягкую» перезагрузку. В этом случае сервис считывает связанные с ним файлы конфигурации, но не прерывает процесс сервиса. Для выполнения «мягкой» перезагрузки используется команда systemctl reload имя_сервиса . Не все сервисы поддерживают «мягкую» перезагрузку. Если она не поддерживается, то появится сообщение вида: Failed to reload ufw.service: Job type reload is not applicable for unit ufw.service.
Автозагрузка сервисов
Чтобы сервис стартовал (загружался) при запуске системы, его нужно включить в список автозагрузки. Для этого используется команда systemctl enable имя_сервиса
Чтобы включить сервис в автозапуск и сразу же запустить используется команда:
Чтобы удалить сервис из автозагрузки, используется команда systemctl disable имя_сервиса
Статус сервиса
Для вывода информации (статуса) сервиса используется команда systemctl status имя_сервиса
Чтобы проверить, запущен ли в данный момент сервис, используется команда systemctl is-active имя_сервиса
Чтобы проверить, включен ли сервис для автозапуска при загрузке системы, используется команда systemctl is-enabled имя_сервиса
Заключение
Мы рассмотрели наиболее часто используемые команды утилиты systemctl. Полный список команд и опций утилиты systemctl можно получить, выполнив:
Источник
Список служб 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 » Как перечислить все запущенные службы в 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 с помощью systemctl
Мы используем systemctl status команду под systemd для просмотра статуса данной службы в операционных системах Linux..
Просмотр статуса сервиса:
Синтаксис команды systemctl следующий
systemctl status
systemctl status
Как просмотреть статус службы под названием nginx
Тип:
$ systemctl status nginx.service
ssh server status
$ systemctl status sshd.service
Lighttpd web server status
$ systemctl status lighttpd.service
Точка (« ● ») использует цвет на поддерживаемых терминалах, чтобы быстро обозначить состояние устройства. Белый цвет указывает на «неактивное» или «деактивированное» состояние. Красный цве т указывает на состояние «сбой» или «ошибка». Зеленый цвет указывает на состояние «активное», «перезагрузка» или «активация».
Понимание состояний службы / модулей systemd
Статус службы Linux зависит от различных состояний, таких как:
Service status | Описание |
---|---|
active (running) | Служба или демон работает в фоновом режиме. Например, веб-сервер sshd или nginx / apache и список для входящего трафика. |
active (exited) | Служба успешно запущена из файла конфигурации. Обычно однократная конфигурация сервисов считывается до выхода из сервиса. Например, сервис AppArmor или Firewall. |
active (waiting) | Наша служба работает, но ожидает события, такого как событие CPUS / печати. |
inactive | Сервис не работает. |
enabled | Служба включается во время загрузки. |
disabled | Служба отключена и не будет запущена при загрузке сервера Linux. |
static | Служба не может быть включена в Linux, но обычно запускается другим модулем systemd автоматически. Другими словами, файл модуля не включен и не имеет условий для разрешения в разделе [Установить] файл модуля. |
masked | Служба полностью отключена, и любая операция запуска на ней всегда заканчивается неудачей. |
alias | Имя службы — это псевдоним. Это означает, что служба является символической ссылкой на другой файл модуля. |
linked | Доступен через одну или несколько символических ссылок на файл модуля (постоянно в /etc/systemd/system/ или временно в /run/systemd/system/), даже если файл модуля может находиться за пределами пути поиска файла модуля |
В настоящее время systemd поддерживает следующие модули
- service : Конфигурация служебного модуля о процессе, который контролируется и контролируется systemd.
- mount : Точка монтирования файловой системы контролируется и контролируется systemd.
- swap : Конфигурация файла подкачки / диска контролируется systemd.
- socket : IPC, сетевой сокет или FIFO файловой системы, управляемый и контролируемый systemd, для активации на основе сокетов.
- target : Он содержит информацию о целевом модуле systemd. Он используется для группирования блоков и как известные точки синхронизации при запуске. Например, graphical.target используется для входа на рабочий стол на основе графического интерфейса пользователя. Точно так же multi-user.target используется серверами, на которых пользователи могут входить в систему с помощью ssh / console.
- device : Устройство, представленное в дереве устройств sysfs / udev. Он включает в себя сетевые и другие устройства.
- automount : Автоматическое монтирование файловых систем
- timer : Cron как модуль systemd для запуска команд и служб в заданном формате даты / времени. Например, обновить прошивку или очистить сеанс, созданный веб-приложениями Python или PHP
- path : Специальный целевой модуль systemd, который устанавливает все модули пути. Например, systemd может выполнять определенные действия в зависимости от пути к файловой системе. Если / etc / foo / modifed предприняли какие-то действия..
- slice : Мы используем срез systemd для изоляции рабочих нагрузок. Они определяют иерархию, в которой размещаются области и услуги. Фактические процессы содержатся в объемах или услугах. Считайте это легким докером. Для каждого слайса могут быть установлены определенные ограничения ресурсов, такие как ограничение ЦП или дискового ввода-вывода, которые применяются ко всем процессам.
- scope : Единицы области видимости не конфигурируются через файлы конфигурации юнитов, а создаются только программно с использованием шинных интерфейсов systemd. Они названы аналогично именам файлов. Единица, имя которой заканчивается на «.scope», относится к единице области видимости. Подразделения областей видимости управляют набором системных процессов. В отличие от единиц обслуживания, единицы области видимости управляют процессами, созданными извне, и не разделяют процессы сами по себе. Основное назначение единиц области видимости — это группировка рабочих процессов системного сервиса для организации и управления ресурсами.
Мы можем перечислить все сервисные единицы следующим образом:
$ sudo systemctl —type=service
Хотите увидеть единицы типа монтирования? Попробуйте:
$ sudo systemctl —type=mount
Отобразить все блоки таймера systemd в вашем Linux:
$ sudo systemctl -t timer
Чтобы показать все установленные файлы модулей, используйте:
$ sudo systemctl list-unit-files
Linux просмотр статуса службы
Введите следующую команду, чтобы просмотреть все службы и состояние модулей в вашей системе Linux с момента загрузки:
$ sudo systemctl
Используйте команду grep command/egrep command чтобы отфильтровать требуемые единицы / службы
$ sudo systemctl | grep ssh
$ sudo systemctl | egrep ‘apache|nginx|lighttpd|php’
Как вывести список модулей, которые systemd в настоящее время имеет в памяти
Выполните следующую команду:
$ sudo systemctl list-units
$ sudo systemctl list-units | more
$ sudo systemctl list-units | grep sshd
$ sudo systemctl list-units —type service
$ sudo systemctl list-units —type timer
Список systemd/systemctl всех отказавших модулей units/services в Linux
$ sudo systemctl list-units —failed
$ sudo systemctl list-units —state failed
$ sudo systemctl list-units —state failed —type service
$ sudo systemctl list-units —state failed —type timer
Что делать, если такой сервис, как nginx, не запущен?
Включите службу systemd:
$ sudo systemctl enable nginx.service
Запустите службу nginx:
$ sudo systemctl start nginx.service
Мы можем остановить или перезапустить службу следующим образом:
$ sudo systemctl stop nginx.service
$ sudo systemctl restart nginx.service
Проверить, включена ли служба или нет, запустить:
$ sudo is-enabled nginx.service
Снова просмотреть статус:
$ sudo status nginx.service
Чтобы увидеть полные выходные данные для проблемы службы -full или -l :
$ sudo status nginx.service -l
$ sudo status openvpn.service —full
Мы может отлаживать и просматривать все сообщения журнала, относящиеся к службе, с помощью команды journalctl:
$ sudo journalctl UNIT=nginx.service
Как просмотреть источник файла службы / модуля systemd
Передайте параметр cat следующим образом:
$ sudo systemctl cat
$ sudo systemctl cat nginx.service
/lib/systemd/system/nginx.service
# Stop dance for nginx
# =======================
#
# ExecStop sends SIGSTOP (graceful stop) to the nginx process.
# If, after 5s (—retry QUIT/5) nginx is still running, systemd takes control
# and sends SIGTERM (fast shutdown) to the main process.
# After another 5s (TimeoutStopSec=5), and if nginx is alive, systemd sends
# SIGKILL to all the remaining processes in the process group (KillMode=mixed).
#
# nginx signals reference doc:
# http://nginx.org/en/docs/control.html
#
[Unit]
Description=A high performance web server and a reverse proxy server
Documentation=man:nginx(8)
After=network.target [Service]
Type=forking
PIDFile=/run/nginx.pid
ExecStartPre=/usr/sbin/nginx -t -q -g ‘daemon on; master_process on;’
ExecStart=/usr/sbin/nginx -g ‘daemon on; master_process on;’
ExecReload=/usr/sbin/nginx -g ‘daemon on; master_process on;’ -s reload
ExecStop=-/sbin/start-stop-daemon —quiet —stop —retry QUIT/5 —pidfile /run/nginx.pid
TimeoutStopSec=5
KillMode=mixed [Install]
WantedBy=multi-user.target
Вывод
Вы узнали о перечислении модулей systemd, включая службы Linux, с помощью команды systemctl. См. Документацию по systemctl или введите следующую команду man:
Источник