Управление на основни услуги на 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, събира и управлява записите в журнала за цялата система - тоест данни от регистрационни файлове на приложения и ядро.
По подразбиране тази команда ще изброява записи на текущите и предишни изтегляния (ако инструментът за дневник е конфигуриран да съхранява записи на предишни изтегляния). Някои дистрибуции включват това поведение по подразбиране, а някои не. За да разрешите запазването на записи от предишни изтегляния, можете:
- Редактирайте файла /etc/systemd/journald.conf. Променете стойността на параметъра Storage= на постоянна.
- Създайте постоянна директория с командата:
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. Разбира се, това ръководство не предоставя пълна информация за тази система за инициализация.
Развивайки умения в системата за осигуряване, вие получавате способността да управлявате състоянието на сървъра, неговите услуги и процеси.