Где находятся службы 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 и проверки их статуса.

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

Источник

ИТ База знаний

Курс по Asterisk

Полезно

— Узнать IP — адрес компьютера в интернете

Читайте также:  Windows 10 не загружает обновления wsus

— Онлайн генератор устойчивых паролей

— Онлайн калькулятор подсетей

— Калькулятор инсталляции IP — АТС Asterisk

— Руководство администратора FreePBX на русском языке

— Руководство администратора Cisco UCM/CME на русском языке

— Руководство администратора по Linux/Unix

Серверные решения

Телефония

FreePBX и Asterisk

Настройка программных телефонов

Корпоративные сети

Протоколы и стандарты

Поиск и расположение команд в Linux

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

Онлайн курс по Linux

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

Разберемся в структуре FHS и посмотрим, как искать файлы и команды. FHS (File System Hierarchy Standard) – это стандартная иерархия ОС. Согласно Hierarchy FHS — есть стандартные папки, которые должны располагаться в корне.

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

  • /bin – базовые исполняемые файлы
  • /boot – файлы loader
  • /dev – устройства
  • /etc – конфигурация ПК
  • /home – домашние директории
  • /lib – библиотеки ядра
  • /proc – информация о работающей системе
  • /media – монтирование носителей
  • /mnt – монтирование носителей
  • /opt – дополнительное программное обеспечение
  • /root – домашняя директория админа
  • /sbin – основные программы настройки системы
  • /srv – данные системных служб
  • /tmp – временные файлы
  • /usr – бинарные файлы пользователей
  • /var — переменные

Первая папка bin в ней находятся базовые исполняемые файлы команд, т.е все команды которые может использовать пользователь они находятся здесь в данной папке. Папка boot – в данной папке находятся файлы загрузчика. Обычно это отдельный диск примонтированный в котором находиться ядро Linux. В папке dev – находятся файлы всех устройств в операционной системе Linux все и даже устройства представляют собой файлы. Папка etc – здесь находиться конфигурация нашего конкретного ПК, в ней много подпапок и в ней лежит конфигурация. В директории home находятся домашние папки всех пользователей, кроме пользователя root. В данной папке находятся документы, рабочий стол и т.д все что относится к пользователю. Папка lib здесь находятся общие библиотеки и модули ядра. Папка proc – здесь находятся вся информация о запущенных в данный момент процессах. В данную папку монтируется виртуальная файловая система procfs . Папка media создана для монтирования съемных накопителей типа USB или CD-ROM. В старых версиях Linux и до сих пор осталась, есть папка mnt . Раньше в нее монтировались съемные носители, теперь же данную папку обычно используют для монтирования дополнительных файловых систем. Папка opt — для установки дополнительного программного обеспечения. Папка root – говорит сама за себя. Папка sbin в данной папке лежат настройки серьезных таких компонент, как файрвол iptables , например, или процесс инициализации init . Папка srv в ней лежат данные для всех системных служб. Папка tmp – понятно, что в ней хранятся временные файлы. Причем данные файлы там хранятся до перезагрузки операционной системы, во время нее они удаляются. В папке usr хранятся двоичные файлы, которые относятся непосредственно к пользователю, например, игры или программы, т.е то что пользователь самостоятельно установил. Папка var – папка переменные, здесь обычно размещается почта или логи программ. Понятно, что это стандарт во многих дистрибутивах могут быть отклонения, но в том или ином виде все эти папки присутствуют в различных дистрибутивах.

Подробнее про структуру FHS можно прочитать здесь

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

Читайте также:  Kali linux звук hdmi

Команды, используемые для поиска:

  • Grep – Утилита поиска по содержимому в том числе и внутри файла
  • Find — Утилита поиска файлов по свойствам. Серьезная утилита, которая начинает поиск файлов по файловой системе в реальном времени, у данной утилиты есть множество ключей и параметров
  • Locate – Это быстрый поиск файлов.
  • Which – Поиск команды. Выводит минимальное количество информации
  • Type – Вывод точной команды
  • Whereis – Поиск команды, исходников и мануалов. Серьезный глубокий инструмент

Начнем с find / -name mail . Данная команда начнет искать в корневой папке / все файлы с именем mail .

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

Есть другая команда — locate mail .

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

Запустим поиск с помощью команды find / -user siadmin , поиск будет искать все что касается данного пользователя. Поиск опять идет дольше, чем поиск командой locate siadmin .

Дело в том, что данная команда по умолчанию ищет не везде и у нее есть конфигурационный файл cat /etc/updatedb.conf .

В данном конфигурационном файле мы можем увидеть, что данная утилита не ищет в примонтированных файловых системах. Даная строчка # PRUNENAMES=».git .bzr .hg .svn» , говорит о том , что в данных форматы в поиске не выдаются. Поиск не производится в папках PRUNEPATHS=»/tmp /var/spool /media /var/lib/os-prober /var/lib/ceph /home/.ecryptfs /var/lib/schroot» . И не ищет в перечисленных файловых системах в файле. Данный файл можно конфигурировать и будут манятся параметры поиска.

Создадим файл текстовый touch Vadim.txt . И попробуем найти — locate Vadim.txt . Ничего не нашел. find Vadim.txt — поиск успешен.

locate работает с индексной локацией. Данный механизм напоминает индексацию файлов в MS Windows. Проходит индексация файлов и папок и после этого windows знает, что и где лежит. А если индексация не была проведена, то операционная система Windows или говорит, что ничего не найдено или поиск происходит длительное время. Аналогично утилита locate работает в Linux. Раз в день, команда locate запускает команду find . Команда find пробегает по всей файловой системе, а команда locate создает некую Базу данных и запоминает где и что находиться. Именно поэтому команда find работает долго, а команда locate работает практически моментально. Locate знает, где и что лежит в тот момент когда find искал. Но есть большой минус, данная функция происходит раз в день и изменения могут быть не актуальны. Для обновления базы данных команды locate , необходимо ее запустить вручную updatedb . Т.е ест конфигурация /etc/updatedb.conf и мы запускаем обновление Базы данных команды. После обновления, команда будет практически мгновенно находить.

И последняя часть статьи, в которой необходимо рассмотреть поиск по командам. Тут достаточно просто, есть команда ls – она показывает содержимое папки. Мы можем найти где находиться данная команда which ls и получим, что она находиться /bin/ls . Т.е. команда ls хранится в папке bin – где хранятся бинарники тех команд, которые могут быть вызваны пользователями. По сути когда мы набираем команду ls , мы вводим /bin/ls .

У нас есть команда type . Обратите внимание, когда мы вызываем команду ls срабатывает подсветка файлов и так далее, т.е. настройки оболочки. Когда мы запускаем напрямую /bin/ls то вызывается непосредственно команда и игнорируются настройки оболочки. Причина заключается в том, что когда мы запускаем просто команду ls , то она запускается с некоторыми ключами.

Чтобы узнать, что за ключи используются необходимо набрать type ls .

Обратите внимание, что команда ls – это алиас\псевдоним. Т.е запуская в таком режиме, фактически мы вводим /bin/ls –color=auto . И получаем красивый вывод. Type позволяет выводить псевдоним.

Читайте также:  Windows автоматически завершает работу

Есть еще одна команда, которая более детальную информацию выводит whereis ls . Для ls там не много информации.

Показывает, где лежит и к какому пакету относится.

Мини — курс по виртуализации

Знакомство с VMware vSphere 7 и технологией виртуализации в авторском мини — курсе от Михаила Якобсена

Источник

Как в Linux пользоваться командой systemctl

Вместе с подсистемой systemd появилась команда systemctl. Она позволяет управлять основными процессами Linux. Ниже представлена небольшая инструкция в виде шпаргалки наиболее используемых команд.

Общий синтаксис

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

Примерный вывод команды:

1) название юнита;
2) тип юнита (например, service: служба или демон, mount: точка монтирования, device: устройства);
3) состояние юнита (загружен или нет);
4) обобщенный статус юнита (active: выполняется, inactive: не был запущен, maintenance: требуется внимание администратора);
5) текущий статус (запущен или нет);
6) описание.

Шпаргалка по часто используемым командам systemctl

1. Посмотреть статус службы:

systemctl status network

* покажет статус службы на примере сети network

2. Запустить сервис:

systemctl start mysql

* запустит сервис баз данных на примере mysql

3. Остановить службу:

systemctl stop ntpd

* остановит сервис времени ntpd

4. Перезапустить службу:

systemctl restart nginx

* перезапустит веб-сервер nginx

5. Включить автозапуск службы:

systemctl enable apache

* разрешит автозапуск веб-сервера apache

6. Отключить автозапуск службы:

systemctl disable firewalld

* запретит автозапуск брандмауэра firewalld

7. Выполнить команду на удаленной системе:

systemctl —host root@192.168.0.15 stop cron

* остановит cron на компьютере с IP-адресом 192.168.0.15, подключившись под учетной записью root.

8. Перезагрузить сервер:

* перезагрузит локальный сервер.

9. Проверка работы сервиса.

Выполняется с помощью опции is-active:

systemctl is-active docker

* в данном примере мы проверим работу службы docker.

а) Если сервис запущен, мы увидим:

б) Если не запущен:

в) Если такого сервиса нет в системе:

Если сервис не работает или его нет в системе, команда вернет код ошибки, таким образом конструкция:

systemctl is-active docker && docker run hello-world

. приведет к выполнению команды docker run hello-world только в том случае, если сервис docker работает.

Автозапуск

Подсистему systemd также можно использовать для автозапуска сервисов или скриптов. Для этого в каталоге /usr/lib/systemd/system создаем юнит (файл) с расширением .service. Подробнее разберем на примере сервиса bind:

Содержимое может быть следующего содержания:

[Unit]
Description=Berkeley Internet Name Domain (DNS)
Wants=nss-lookup.target
Wants=named-setup-rndc.service
Before=nss-lookup.target
After=network.target
After=named-setup-rndc.service

[Service]
Type=forking
Environment=NAMEDCONF=/etc/named.conf
EnvironmentFile=-/etc/sysconfig/named
Environment=KRB5_KTNAME=/etc/named.keytab
PIDFile=/run/named/named.pid
ExecStartPre=/bin/bash -c ‘if [ ! «$DISABLE_ZONE_CHECKING» == «yes» ]; then /usr/sbin/named-checkconf -z «$NAMEDCONF»; else echo «Checking of zone files is disabled»; fi’
ExecStart=/usr/sbin/named -u named -c $ $OPTIONS
ExecReload=/bin/sh -c ‘/usr/sbin/rndc reload > /dev/null 2>&1 || /bin/kill -HUP $MAINPID’
ExecStop=/bin/sh -c ‘/usr/sbin/rndc stop > /dev/null 2>&1 || /bin/kill -TERM $MAINPID’
PrivateTmp=true

* как правило, файл разделен на 3 части:

  • Unit — позволяет определить метаданные для юнита.
  • Service — раздел для основной конфигурации юнита.
  • Install — определение поведения для юнита при его включении или отключении.

Подробнее можно почитать о структуре и возможных опциях на странице https://linux-notes.org/pishem-systemd-unit-fajl/

После внесения изменений и сохранения файла, необходимо перечитать изменения командой:

Теперь можно разрешить автозапуск:

systemctl enable named

Редактирование сервисов

Если мы хотим внести изменения в юнит-файл сервиса, который был установлен с последним, необходимо использовать drop-in файл или файл переопределения настроек. В противном случае, после обновления программы наши изменения могут быть удалены.

И так, мы для примера взяли юнит для bind. Чтобы создать для него drop-in файл, вводим:

systemctl edit named

И вносим, например, такие изменения:

* будет создан файл /etc/systemd/system/named.service.d/override.conf, который будет переопределять настройки основного юнит-файла. В данном примере, мы указываем на необходимость перезапуска сервиса при сбое.

Чтобы убедиться в использовании Drop-In файла смотрим статус сервиса:

Источник

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