Как да управлявате Systemd услуги с Systemctl?

Системата по подразбиране и мениджърът на услуги за повечето Linux дистрибуции сега са системни.


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

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

Единици

Елементите, които се управляват от systemd, се наричат ​​единици. Единичните файлове се намират в / lib / systemd / system.

Сервизни единици

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

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

Командата за управление на системни единици е systemctl.

Стартиране и спиране на услуги

За да стартирате системна услуга, използвайте командата за стартиране на systemctl:

$ sudo systemctl start name.service

Можете да оставите .service наставка. Например, за да стартирате апаш сървъра в Ubuntu:

$ sudo systemctl стартира apache2

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

$ sudo systemctl stop name.service

И така, за да спрете апаш сървъра в Ubuntu:

$ sudo systemctl stop apache2

Рестартиране и презареждане на услуги

За да рестартирате работеща услуга, използвайте команда за рестартиране:

$ sudo systemctl рестартиране name.service

И където се изисква единственият конфигурационен файл за презареждане

$ sudo systemctl reload name.service

Активиране и деактивиране на услуги

Ако искате услугата да се стартира автоматично при стартиране на системата, използвайте командата за активиране:

$ sudo systemctl активиране на name.service

За да забраните стартирането на услуга при стартиране на системата:

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

Деактивирането не спира работещата услуга.

Преглед на състоянието на услугата

За да видите информация за услуга:

$ sudo systemctl status name.service

Това ще ви покаже състоянието на услугата и първите няколко реда от лог файла. И така, докато услугата работи, изходът на

sudo systemctl статус apache2

е

apache2.service – HTTP сървърът на Apache
Заредена: заредена (/lib/systemd/system/apache2.service; активирана; предварително зададена настройка на доставчика: активирана)
Drop-In: /lib/systemd/system/apache2.service.d
└─apache2-systemd.conf
Активен: активен (работи) от втор 2020-05-19 22:11:36 UTC; преди 4 дни
Процес: 116002 ExecReload = / usr / sbin / apachectl изящен (код = излязъл, статус = 0 / УСПЕХ)
Основен PID: 104165 (apache2)
Задачи: 55 (ограничение: 1024)
CGroup: /system.slice/apache2.service
├─104165 / usr / sbin / apache2 -k старт
├─116006 / usr / sbin / apache2 -k старт
└─116007 / usr / sbin / apache2 -k старт

19 май 22:11:36 ubuntu18 systemd [1]: Стартиране на HTTP сървъра на Apache…
19 май 22:11:36 ubuntu18 systemd [1]: Стартира HTTP сървърът на Apache.
21 май 06:25:01 ubuntu18 systemd [1]: Презареждане на HTTP сървъра на Apache.
21 май 06:25:01 ubuntu18 systemd [1]: Презаредена HTTP сървъра на Apache.
22 май 06:25:01 ubuntu18 systemd [1]: Презареждане на HTTP сървъра на Apache.

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

$ sudo systemctl is-active name.service

И така, докато услугата apache2 работи, изходът на systemctl is-active командата е:

$ sudo systemctl е активен apache2
активен

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

$ sudo systemctl е активиран name.service.

Преглед на състоянието на системата

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

За да видите всички видове единици

$ sudo systemctl – не помага
Налични типове единици:
обслужване
гнездо
цел
приспособление
планина
automount
размяна
часовник
път
парче
обхват

За да изброите всички инсталирани единици, използвайте list-unit-файлове

$ sudo systemctl списък-единица файлове
ЕДИН ФАЙЛ ДЪРЖАВА
proc-sys-fs-binfmt_misc.automount статичен
-.монтиран генериран
boot-efi.mount генериран
dev-огромни страници.mount статични
dev-mqueue.mount статично
mnt.mount генериран
proc-sys-fs-binfmt_misc.mount статичен
sys-fs-fuse-connection.mount статично
sys-kernel-config.mount статичен
sys-kernel-debug.mount static
acpid.path е активиран
apport-autoreport.path е активиран
systemd-ask-password-console.path статичен
systemd-ask-password-plymouth.path статичен
systemd-ask-password-wall.path статичен
сесия-161.скоп преходен
account-daemon.service активирана

Изходът има само две колони Unit File и State. Обикновено състоянието е активирано, деактивирано, статично или маскирано.

  • статичен: Това означава, че единицата не може да бъде активирана, изпълнява еднократно действие или е зависимост от друго устройство и не може да се управлява сама.
  • Маскирани: Единица, посочена като маскирана, означава, че е напълно нестабилна, тъй като е свързана с / dev / null. Това се нарича маскиране на устройството. Това предотвратява стартирането на услугата, ръчно или автоматично.

Списък на всички инсталирани услуги

Командата systemctl list-unit-files с -т или –филтър за обслужване показва състоянието само на инсталираните услуги.

$ sudo systemctl list-unit-files -t услуга

ЕДИН ФАЙЛ ДЪРЖАВА
account-daemon.service активирана
acpid.service деактивиран
apache-htcacheclean.service деактивиран
[Имейл защитен] хора с увреждания
apache2.service активирана
[Имейл защитен] хора с увреждания
apparmor.service е активиран
apport-autoreport.service статичен
[Имейл защитен] статичен
apport.service генериран
apt-daily-upgrade.service статично
apt-daily.service statik
atd.service активирана
[Имейл защитен] активиран
blk-available.service активирана
bootlogd.service маскиран
bootlogs.service маскиран

За да видите всички активни сервизни единици, използвайте списъци с -т сервизен филтър

$ sudo systemctl списък-единици -t услуга

ОПИСАНИЕ НА АКЦИОННАТА СТРАНА НА ОБЕКТИ
account-daemon.service зарежда активно активен Accounts Service
apache2.service заредена активна работа на Apache HTTP сървър
apparmor.service заредена активна излезе от инициализацията на AppArmor
apport.service зарежда активен излязъл от LSB: автоматично генериране на доклад за сривове
atd.service заредено активно работи Отложен планировчик на изпълнение
blk-available.service заредена активна излязла Наличност на блок устройства
cloud-config.service заредена активна излез Приложи настройките, посочени в cloud-con
cloud-final.service заредена активна излез Изпълнение на облак потребител / крайни скриптове
cloud-init-local.service заредена активна излезла Първоначална работа в облак-init (предварителна мрежа)
cloud-init.service активна излезла от първоначалната работа в облак-init (услуга за метаданни)
console-setup.service заредена активна излез Задаване на шрифт и карта на конзолата
cron.service заредено активно работи Редовна обработка на фона програма

Изходът има следните колони:

  • МЕРНА ЕДИНИЦА: Името на системната сервизна единица
  • LOAD: Показва дали дефиницията на устройството е правилно прочетена и заредена
  • АКТИВЕН: Описва дали устройството е активно.
  • SUB: Ниско ниво на активиране на устройството, даваща по-подробна информация за устройството. Това ще варира според типа на единицата.
  • ОПИСАНИЕ: Описание на обслужващото устройство.

заключение

Надявам се това ви дава представа за използването на systemctl за управление на услуги в Linux. Ако имате интерес да научите повече, можете да проверите това Курс за майсторство на Linux.

ЕТИКЕТИ:

  • Linux

Jeffrey Wilson Administrator
Sorry! The Author has not filled his profile.
follow me
    Like this post? Please share to your friends:
    Adblock
    detector
    map