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 към скрипт по ваш избор.
Заключение
Променяйки вашата система, особено как се зарежда, можете да направите сами, но внимавайте, че това има много последици за всяка услуга, така че се уверете, че вашият код е стабилен и бърз за изпълнение.