systemd

Systemd - Как стартира вашата система

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

Systemd: Баща на всички други процеси

Linux и всяка друга система * nix винаги стартира процес, който е бащата на всички други процеси. Когато използвате Systemd, този процес е systemd, процесът винаги се нарича „init“, независимо от системата init. След като systemd се изпълни, той ще стартира демоните, които изпълняват подсистемите. Демоните контролират какви ресурси имате и какви системи са отворени. Вашият ред за вход е услуга, управлявана от systemd. Systemd стартира много други услуги и също така монтира всички ваши дискове, включително монтираните модули.

Как контролирате какво започва?

На първо място, най-ранната init система имаше нива, които много читатели ще разпознаят. Runlevel 1 беше еднопотребителски режим, 2 многопотребителски режим без работа в мрежа и 3-5 многопотребителски и графичен. Задаването на ниво на изпълнение на 0 означава спиране и 6 означава рестартиране. Разработчиците на systemd установиха, че тези нива са неясни, затова го промениха, за да се нарекат цели. Целите не са абсолютно еднакви, но имат подобна функция. Когато се изпълнява конкретна цел, се изпълнява конкретна колекция от единици. Повече за единиците по-късно.

Задаване на „ниво на изпълнение“, наречено цел.

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

$ systemctl изолиращ многопотребител.мишена

Или, ако искате да стартирате вашия работен плот, вместо това използвайте следната команда.

$ systemctl изолира графично.мишена

Това, което наистина ви интересува, е как да започнете правилното ниво, можете да разберете какво имате в момента по този начин.

$ systemctl get-default

За да промените настройката по подразбиране, задайте я.

$ systemctl графично зададено по подразбиране.мишена

Тази команда всъщност кара много единици и услуги да стартират, докато стартирате компютъра си. Може да искате да стартирате или спрете една услуга.

СТАРТИРАНЕ, спиране, активиране и деактивиране на услуга.

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

$ systemctl статусни чаши.обслужване

Тази команда показва състоянието на услугата, тя също така показва списък от действия, предприети от системата по отношение на услугата. За да спрете услугата, използвайте командата по-долу.

$ systemctl стоп чаши.обслужване

Услугата вече е спряна за текущата ви сесия. За да го промените на не стартиращ при следващото зареждане, използвайте disable.

$ systemctl деактивира чашките.обслужване

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

Systemd също така контролира монтажи, устройства, гнезда и други. Единиците са по-ниски и са по-лесни за разбиране, ако вече сте имали работа с Linux. Можете също така да ги зададете сами, но най-големият ефект върху зареждането е да контролирате услугите.

Как добавяте свои собствени скриптове?

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

[Мерна единица]
Описание = Рестартирайте мрежовия мениджър при възобновяване
След = прекъсване.мишена
След = хибернация.мишена
След = хибриден сън.мишена
 
[Обслужване]
Тип = onehot
ExecStart = / bin / systemctl рестартирайте мрежовия мениджър.обслужване
 
[Инсталирай]
WantedBy = спиране.мишена
WantedBy = хибернация.мишена
WantedBy = хибриден сън.мишена

Този код създава услуга, която се случва веднъж (onehot) след трите цели, споменати в кода. Кодът, който се изпълнява, в този случай е една команда. Можете също толкова добре да насочите ExecStart към скрипт по ваш избор.

Заключение

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

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