Управление службами Linux (подробно)!

задняя часть Linux
Управление службами Linux (подробно)!

Это четвертый день моего участия в августовском испытании обновлений. Узнайте подробности мероприятия: Испытание августовского обновления

Введение

существуетLinux, всякий раз, когда вы устанавливаете какой-либо пакет со службами и демонами, система по умолчанию инициализируется иsystemdСкрипты добавлены, но в данный момент они не включены.

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

вLinux/Unixна основе операционной системы,init(сокращение от инициализации) — это первый процесс, который запускается в процессе загрузки ядра, загружающего систему.

initобработатьid (pid)да1, он будет продолжать работать в фоновом режиме, пока система не будет выключена.

initСначала согласно/etc/inittabфайл решениеLinuxуровень запуска, а затем запустить все остальные процессы и приложения в фоновом режиме в зависимости от уровня выполнения.

BIOS,MBR,GRUBи запускается программа ядраinitкак преждеLinuxчасть загрузчика начинает работать.

НижеLinuxуровни запуска, доступные в (от0~6всего семь уровней запуска):

  • 0: выключение
  • 1: Однопользовательский режим
  • 2: Многопользовательский режим (без NFS)
  • 3: Полный многопользовательский режим
  • 4: система не используется
  • 5: Режим графического интерфейса
  • 6: перезагрузка

Инициализировать систему

Ниже приведены три наиболее часто используемые системы инициализации в системах Linux:

  • System V(Sys V)
  • Upstart
  • systemd

Система V (Система V)

System V(Sys V)это классUnixПервая система также является традиционной системой инициализации.initЭто первая программа, которая запускается в процессе загрузки системы загрузки ядра, и это родительский процесс для всех программ.

самыйLinuxПервоначально дистрибутив использовалSystem V(Sys V)традиционная система инициализации. За последние несколько лет было выпущено несколько систем инициализации для устранения конструктивных ограничений стандартной версии, таких как:launchd,Service Management Facility,systemdа такжеUpstart.

ноsystemdиспользовался несколькими крупнымиLinuxдистрибутив, принятый для замены традиционногоSysVИнициализируйте систему.

Upstart

Upstartоснован на событиях/sbin/initАльтернатива демонам, которые обрабатывают запуск задач и служб во время запуска системы, контролируют их во время работы системы и выключают их при завершении работы системы.

это было изначальноUbuntuдизайн, но он также может быть безупречно развернут во всех другихLinuxсистема, используемая для замены древнейSystem-V.

Upstartиспользуется дляUbuntu 9.10прибытьUbuntu 14.10и на основеRHEL 6системы, после чего былоsystemdзаменять.

systemd

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

systemdсовместимыйSysVа такжеLSBскрипт инициализации. он может напрямую заменитьSysVИнициализируйте систему.systemdэто первая программа, запускаемая ядром, ееPIDда1.

systemdявляется родительским процессом всех программ,Fedora 15является первым, кто используетsystemdзаменятьupstartрелизная версия.systemctlдля командной строки это adminsystemdОсновные инструменты для демонов/служб, такие как: (запуск, перезапуск, завершение работы, включение, отключение, перезагрузка и статус)

systemdиспользовать.serviceфайл вместоbashСкрипт (используется SysVinit).systemdДобавьте всех демонов вcgroupsОтсортировано, вы можете просматривать по/cgroup/systemdСистемный уровень просмотра файлов.

service

serviceКоманды, как следует из названия, используются для управленияLinuxКоманды для служб в операционной системе.

Эта команда вообще недоступнаlinuxв релизной версии. в основном вredhat,fedora,mandrivaа такжеcentosсередина.

查看所有服务当前的运行状态
service --status-all
​
查看指定服务(vsftpd)的运行状态
service vsftpd status
​
停止指定服务(vsftpd)
service vsftpd stop
​
重启网络服务
service network restart

chkconfig

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

Кроме того, это позволяет нам включать или отключать службы при запуске. Предпосылка заключается в том, что у вас есть права суперадминистратора (rootилиsudo) для запуска этой команды.

Все сервисные скрипты находятся в/etc/init.dв файле

image-20210803160510022

image-20210803153702926

设定mysqld在等级3和5为开机运行服务,--level 35表示操作只在等级3和5执行,on表示启动,off表示关闭
chkconfig --level 35 mysqld on 
​
设定mysqld在各等级为on,“各等级”包括2、3、4、5等级
chkconfig mysqld on        
​
修改服务的默认启动等级
chkconfig --level 35 mysqld on

systemctl

концепция

systemdОсновная идеяunit(блок) тип:unitпредставляют разные видыsystemdОбъекты идентифицируются и настраиваются через конфигурационные файлы, файлы в основном содержат系统服务,监听socket,保存的系统快照и другая информация, связанная с инициализацией

Ниже приведен тип устройства:

  • service: расширение файла.service, используемый для определения системных служб
  • target: расширение файла.target, для моделирования уровня запуска реализации
  • device: используется для определения устройства, распознаваемого ядром
  • mount: определяет точку монтирования файловой системы
  • socket: используется для идентификации файла сокета, используемого для межпроцессного взаимодействия, а также может задерживать запуск службы, когда система начинает выполнять запуск по запросу.
  • snapshot: Управление снимками системы
  • swap: используется для идентификации устройства подкачки
  • automount: точка автоматического монтирования файловой системы
  • path: используется для определения использования файла или каталога в файловой системе, часто используется для задержки активации служб при изменении файловой системы.

Итак, как проверить эти типы?

можно использовать-tплюс тип, чтобы увидеть, чтобыserviceНапример

ststemctl -t service

image-20210803212557113

каталог файла конфигурации systemd

  • /usr/lib/systemd/system/: здесь размещена конфигурация основного скрипта запуска каждой службы, которая чем-то похожа на предыдущую/etc/init.d;

image-20210803213413975

  • /run/systemd/system/: каталог, в котором находятся служебные сценарии, сгенерированные во время работы системы.Эти сценарии имеют более высокий приоритет, чем/usr/lib/systemd/system/высоко;

image-20210803213505374

  • /etc/systemd/system/: Каталог, в котором находится сценарий выполнения, созданный администратором в соответствии с потребностями хост-системы, и приоритет выполнения выше, чем/run/systemd/system/высоко;

image-20210803213309938

Из приведенных выше функций и порядка приоритетов мы можем знать, что/etc/systemd/system/Соответствующая конфигурация в каталоге определяет, будет ли система выполнять некоторые службы, поэтому обычно в каталоге находится много файлов ссылок. а также/usr/lib/systemd/system/под, поставить фактическое исполнениеsystemdКонфигурационный файл сценария запуска. Поэтому, если вы хотите изменить настройки запуска службы, вам следует перейти к/usr/lib/systemd/system/Изменено ниже./etc/systemd/system/Просто укажите ссылку на правильный файл конфигурации сценария выполнения. Поэтому, если вы хотите увидеть настройки выполнения сценария, вам следует перейти к/usr/lib/systemd/system/проверить.

Общие команды

Задача старый порядок новый порядок
заставить службу запускаться автоматически chkconfig --level 3 httpd on systemctl enable httpd.service
Сделать так, чтобы служба не запускалась автоматически chkconfig --level 3 httpd off systemctl disable httpd.service
Проверить статус услуги service httpd status статус systemctl httpd.service (детали службы) systemctl is-active httpd.service (отображается, только если активен)
показать все запущенные сервисы chkconfig --list systemctl list-units --type=service
запустить службу service httpd start systemctl start httpd.service
остановить службу service httpd stop systemctl stop httpd.service
перезапустить службу service httpd restart systemctl restart httpd.service

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

systemctl status httpd

Рабочий статус:

  • active(running): означает, что в системе выполняются одна или несколько программ;
  • active(exited): служба, которая нормально завершается после одного выполнения, и в настоящее время в системе не выполняется ни одна программа;
  • active(waiting): Выполняется, но для продолжения обработки необходимо дождаться других событий;
  • inactive: эта служба в настоящее время не работает;
  • dead: программа очищена;

Статус запуска:

  • enabled:этоdaemonбудет выполняться во время загрузки;
  • disabled:этоdaemonне будет выполняться во время загрузки;
  • static:этоdaemonне может быть запущен сам по себе (enableнет), но может бытьenabledСлужба для пробуждения (служба, связанная с атрибутом);
  • mask:этоdaemonЕго все равно нельзя запустить, потому что он был принудительно отключен (не удален), доступ к которому можно получить черезsystemctlunmaskвозврат в исходное состояние;

image-20210803213938487

Проверьте все детали конфигурации сервиса

systemctl show httpd

image-20210803210056119

Проверьте статус самозапуска каждой службы

systemctl list-unit-files --type=service

image-20210803212005893

Получить список зависимостей для службы

systemctl list-dependencies httpd.service

image-20210803210246562

Получение списка групп управления по иерархии

systemd-cgls

image-20210803210737214

Список групп управления по ЦП, памяти, вводу и выводу

systemd-cgtop

image-20210803210940418

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

systemd-analyze blame

image-20210803204820452

Список всех доступных системных сокетов

systemctl list-unit-files --type=socket

image-20210803205639124

операция сокета

systemctl start cups.socket #启动套接字
systemctl restart cups.socket #重启套接字
systemctl stop cups.socket #停止套接字
systemctl reload cups.socket #重新加载套接字
systemctl status cups.socket #查看套接字状态
​
systemctl is-active cups.socket
systemctl enable cups.socket
systemctl disable cups.socket

другие команды

systemctl mask httpd.service   #禁用某个服务
systemctl unmask httpd.service   #解除禁用某个服务
​
systemctl isolate multi-user.target  #将目前的操作环境改为纯文本模式,关掉图形界面
systemctl isolate graphical.target  #将目前的操作环境改为图形界面
​
systemctl poweroff # 系统关机
systemctl reboot  # 重新开机
systemctl suspend  # 进入暂停模式
systemctl hibernate # 进入休眠模式
systemctl rescue  # 强制进入救援模式
systemctl emergency # 强制进入紧急救援模式

Справочная документация

Подробное объяснение и руководство по использованию команды Systemctl

Подробно объясните systemctl (с общими командами)

Эксплуатация и обслуживание - использование centos 7 systemctl

Управление службами Linux: команды chkconfig и systemctl

Обычное использование команды службы linux

Подробное объяснение команды chkconfig в Linux

Прошлые статьи

Платформа проникновения Metasploit, которую должен знать каждый специалист по сетевой безопасности!

Основы проникновения — использование общих модулей Metasploit

Руководство по серверному оборудованию!