systemd

Как да изброя услугата със systemd

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

Командата за изхвърляне

Ако някой ви помоли да покажете цялата конфигурация на вашата система, използвайте командата dump.

$ systemd --dump-configuration-items

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

Йерархията на systemd

За да станете ефективни, трябва да осъзнаете, че в systemd имате йерархия и можете да настроите всяка услуга да зависи и / или да чакате други услуги. Различните начини, по които правите това, се виждат в сервизните файлове. Различните изявления, които имате, са „Иска“, „Задължително“, „Преди“ и „След“. За ефективен анализ можете да ги използвате, за да видите дали устройството ви не работи поради зависимости. След това можете да проследите къде се крие основният проблем. Ето пример за това.

$ systemctl списък-зависимости - преди xpra.обслужване

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

Най-важното използване на това е да се проучи дали във вашата услуга липсват зависимости, използвайте командата по този начин.

$ systemctl списък-зависимости xringd

Резултатът е дълъг списък, удобно организиран в дърво и показващ всички услуги като зелено или червено, ако нещо не е наред. Можете също да видите зависимостите във файла с услугите. Отворете файла с вашия любим редактор или използвайте systemctl, който ще отвори файла с редактора по подразбиране.

Изброяване на активни услуги

Когато искате да проучите дадена система, ще трябва да знаете как единиците се напасват. За да направите това, имате редица опции за отпечатване на детайлите. Можете да изброите кои системи са заети, неуспешни и т.н. По-важното е, че можете да изброите как са съставени, кой блок, услуга и т.н. текущата единица зависи от. Основната команда за това е systemctl, опциите са полезни за стесняване на конкретния ви проблем.

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

$ systemctl list-unit-files --type = услуга

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

$ systemctl list-unit-files --type = service --state = маскиран

Маскираните услуги се блокират, така че другите услуги не могат да ги стартират, дори ако другата услуга се нуждае от тях. Това може да се използва, за да се гарантира, че нямате работещи конфликтни услуги. Обикновено много услуги са маскирани от вашия мениджър на пакети, когато премахнете пакета. Можете да премахнете напълно файла с услугата, ако желаете, след премахване на услуга. Възможно е също така да разруши много услуги, които искате, така че не забравяйте да знаете дали имате нужда от маскираните услуги.

Някои услуги са маскирани от процеси и не винаги възнамерявате услугата да бъде маскирана. Когато това се случи с вашата система, първото действие, което трябва да предприемете, е да демаскирате с помощта на systemctl. Това обаче не винаги е възможно, така че трябва да премахнете връзката в правилната директория. В повечето системи това ще бъде lib / systemd / system. Преди да го направите обаче, проверете дали файлът всъщност е връзка към / dev / null.

$ ls -l lib / systemd / system> | grep null

Когато сте сигурни, че искате да премахнете тази връзка, премахнете я с rm или прекратете връзката.

$ rm / lib / systemd / system / udisks2.обслужване

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

$ systemctl статус lvm2 *

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

Заключение

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

Топ Oculus App Lab Games
Ако сте собственик на слушалки на Oculus, тогава трябва да знаете за странично зареждане. Sideloading е процесът на инсталиране на несъхранявано съдър...
Топ 10 игри за игра на Ubuntu
Платформата на Windows е една от доминиращите платформи за игри поради огромния процент игри, които се развиват днес, за да поддържат Windows. Може ли...
5 най-добри аркадни игри за Linux
В днешно време компютрите са сериозни машини, използвани за игри. Ако не можете да получите новия висок резултат, ще разберете какво имам предвид. В т...