Управление на основни услуги на Systemd и регистриране

Оферта от 8host.com

основни

Напоследък дистрибуциите на Linux широко използват системата за стартиране на systemd. Тази система е бърз и гъвкав модел за осигуряване, който ви позволява да управлявате всички услуги на машината.

Това ръководство обхваща най-важните системни команди. Тази система е включена в дистрибуции на Ubuntu 15.04 и по-нови версии, Debian 8, CentOS 7, Fedora 15.

Основи на управлението на единици

Основните компоненти, които systemd управлява, са единици. Има много видове единици; най-често срещаният тип е услуга (файлове с разширение .service). Основният инструмент за управление на услуги е командата systemctl.

Командата systemctl има своя еквивалент за всяка стандартна системна команда init. Като пример, разгледайте файла nginx.service.

Забележка : За да получите този файл, инсталирайте Nginx.

За да стартирате услугата, въведете:

sudo systemctl стартира nginx.service

За да спрете услугата:

sudo systemctl спира nginx.service

Можете да рестартирате услугата по следния начин:

sudo systemctl рестартирайте nginx.service

За да рестартирате, без да прекъсвате работата си, въведете:

sudo systemctl презареди nginx.service

Активиране и деактивиране на единици

По подразбиране повечето systemd единици не се стартират автоматично. За да конфигурирате автоматичното стартиране на модул, трябва да го активирате. Това ще свърже устройството към конкретен целеви компонент и след това устройството ще работи заедно с него.

За да конфигурирате услугата да стартира автоматично, въведете:

sudo systemctl активира nginx.service

За да деактивирате услуга:

sudo systemctl деактивира nginx.service

Състояние на системата

Сървърът systemd може да предостави информация, която може да се използва за извеждане на текущото състояние на системата.

Например, за да изброите всички активни системни файлове, въведете:

systemctl list-units --all

За да покажете списък с всички инсталирани единици (включително тези, които systemd не е заредил в паметта), въведете:

Преглед на регистрационни файлове

Компонентът systemd, наречен journald, събира и управлява записите в журнала за цялата система - тоест данни от регистрационни файлове на приложения и ядро.

По подразбиране тази команда ще изброява записи на текущите и предишни изтегляния (ако инструментът за дневник е конфигуриран да съхранява записи на предишни изтегляния). Някои дистрибуции включват това поведение по подразбиране, а някои не. За да разрешите запазването на записи от предишни изтегляния, можете:

  1. Редактирайте файла /etc/systemd/journald.conf. Променете стойността на параметъра Storage= на постоянна.
  2. Създайте постоянна директория с командата:

sudo mkdir -p /var/log/journal

Ако комбинирате флаговете -k и -b, можете да получите само записите в ядрото за текущото зареждане.

Единично състояние

Горните команди дават достъп до информация за общото състояние на системата. Командата systemctl ви позволява също да получите информация за състоянието на отделните единици.

За да разберете текущото състояние на единица, използвайте опцията за състояние. Командата ще върне състоянието на модула (активирано или деактивирано), информация за процеса и последните записи в журнала:

systemctl статус nginx.service

journalctl -u nginx.service

Както преди, можете да ограничите изхода до текущото зареждане, като използвате флага -b:

journalctl -b -u nginx.service

Проверка на единици и файлове на единици

Сега знаете как да стартирате и спирате единици, как да преглеждате състоянието им и записи в журнала, за да получите представа какво се случва с този процес. Време е да научите как да проверявате други аспекти на единиците и файловете на единиците.

systemctl cat nginx.service

systemctl списък-зависимости nginx.service

Тази команда ще покаже списък със зависими единици и целеви единици. За разширен списък от зависимости, въведете:

systemctl списък-зависимости --all nginx.service

systemctl показва nginx.service

Тази команда ще върне стойностите на всички опции, управлявани от systemd.

Модифициране на модулни файлове

systemd ви позволява да модифицирате модулни файлове с помощта на командата systemctl.

За да добавите фрагмент от единичен файл, който по-късно може да се използва за разширяване или замяна на стандартните опции за единичен файл, използвайте опцията за редактиране:

sudo systemctl редактиране на nginx.service

За да редактирате изцяло съдържанието на файл, без да създавате фрагмент, използвайте флага --full:

sudo systemctl edit --full nginx.service

След като редактирате файла с модула, рестартирайте процеса systemd, за да влязат в сила промените:

sudo systemctl демон-презареждане

Изпълнете нива

Друга важна функция на системата за инициализация е преходът на самия сървър между различни състояния. В традиционните системи за стартиране те обикновено се наричат ​​нива на изпълнение; Една система може да бъде само в едно ниво на изпълнение в даден момент.

В systemd концепцията за нива на изпълнение е заменена от така наречените цели. Целите са точки за синхронизация, чрез които сървърът може да превключва състояния. Услуги и други модулни файлове могат да бъдат обвързани с цели.Освен това системата може да използва няколко цели едновременно.

systemctl list-unit-files --type=target

За да промените целта по подразбиране, използвайте опцията set-default:

sudo systemctl set-default multi-user.target

systemctl списък-зависимости multi-user.target

Опцията за изолиране ви позволява да превключвате цели. Въпреки това, преди да смените целта, уверете се, че новата цел няма да деактивира критични услуги.

sudo systemctl изолира multi-user.target

Спиране и рестартиране на сървъра

Също така системата за инициализация може да използва съкратени команди. Например, за да деактивирате сървъра, въведете:

sudo systemctl poweroff

Ако искате да рестартирате сървъра, въведете:

sudo systemctl рестартиране

За да стартирате сървъра в режим на възстановяване, въведете:

sudo systemctl спасяване

Повечето операционни системи могат да използват традиционни псевдоними за най-често срещаните операции. Тоест можете да пропуснете командата systemctl и просто да въведете:

sudo poweroff sudo рестартиране

Имайте предвид обаче, че тази функция не винаги се поддържа.

Заключение

Вече сте запознати с основните функции и команди на systemd. Разбира се, това ръководство не предоставя пълна информация за тази система за инициализация.

Развивайки умения в системата за осигуряване, вие получавате способността да управлявате състоянието на сървъра, неговите услуги и процеси.