Systemd: Oče vseh drugih procesov
Linux in kateri koli drug sistem * nix vedno zažene proces, ki je oče vseh drugih procesov. Ko uporabljate Systemd, je ta postopek systemd, ne glede na sistem init pa se vedno imenuje "init". Ko se systemd zažene, bo zagnal demone, ki poganjajo podsisteme. Demoni nadzorujejo, katere vire imate in kateri sistemi so odprti. Vaš poziv za prijavo je storitev, ki jo upravlja sistemd. Systemd zažene številne druge storitve in namesti tudi vse vaše diske, vključno s pritrdilnimi nosilci.
Kako nadzirate, kaj se začne?
Prvič, najzgodnejši sistem init je imel ravni, ki jih bodo prepoznali številni bralci. Runlevel 1 je bil način za enega uporabnika, 2 za več uporabnikov brez omrežja in 3-5 za več uporabnikov in grafično. Nastavitev ravni izvajanja na 0 pomeni zaustavitev in 6 pomeni ponovni zagon. Razvijalci systemd so ugotovili, da so te ravni nejasne, zato so jih spremenili v cilje. Cilji niso popolnoma enaki, vendar imajo podobno funkcijo. Ko se izvaja določen cilj, se izvaja posebna zbirka enot. Več o enotah kasneje.
Nastavitev "runlevel", imenovane tarča.
Med izvajanjem lahko spremenite cilj, na primer lahko uporabite terminal, da cilja nastavite na več uporabnikov. To bi ustavilo vaš GUI, X ali Wayland, vendar se vi in drugi lahko prijavite z besedilno konzolo. Uporabite naslednji ukaz.
$ systemctl izoliraj več uporabnikov.ciljČe pa želite zagnati namizje, namesto tega uporabite naslednji ukaz.
$ systemctl izoliraj grafično.ciljV resnici vas zanima, kako začeti pravilno raven, na ta način lahko ugotovite, kaj imate zdaj.
$ systemctl get-defaultČe želite spremeniti privzeto, jo nastavite.
$ systemctl privzeto grafično.ciljS tem ukazom se med zagonom računalnika zažene veliko enot in storitev. Morda boste želeli zagnati ali ustaviti eno samo storitev.
ZAČETEK, ustavitev, omogočanje in onemogočanje storitve.
Tu imate priložnost spremeniti dogajanje med zagonom in med običajnim delovanjem. V nasprotju s cilji so enote posebne za določeno storitev. Če želite ustaviti storitev, uporabite "systemctl stop", prav tako lahko uporabite "start" in "restart". Če želite, da se storitev zažene ob zagonu, uporabite »omogoči«, ustavi pa »onemogoči«. Izberite storitev in jo zaženite in ustavite med izvajanjem.
$ systemctl status skodelice.storitevTa ukaz prikazuje stanje storitve, prikazuje pa tudi seznam ukrepov, ki jih je sistem opravil v zvezi s storitvijo. Če želite storitev ustaviti, uporabite spodnji ukaz.
$ systemctl stop skodelice.storitevStoritev je zdaj ustavljena za vašo trenutno sejo. Če ga želite spremeniti tako, da se ne zažene ob naslednjem zagonu, ga onemogočite.
$ systemctl onemogoči skodelice.storitevUpoštevajte, da lahko storitev samo onemogočite, to ne bi vplivalo na vaše trenutno stanje. Storitev še naprej deluje. Ob naslednjem zagonu pa storitev ne bo zagnala.
Systemd nadzira tudi nosilce, naprave, vtičnice in še več. Enote so nižje in jih je lažje razumeti, če ste že imeli opravka z Linuxom. Te lahko nastavite tudi sami, vendar največ vpliva na zagon nadzor nad storitvami.
Kako dodate lastne skripte?
Svoje skripte lahko dodate precej enostavno, zanimivosti pa je, kako prilagodite svoj skript ali storitev drugim. To je lepo prikazano v tej datoteki storitve wifi-resume.
[Enota]Opis = Znova zaženite upravitelja omrežja ob nadaljevanju
Po = začasno ustavi.cilj
Po = prezimovanje.cilj
Po = hibridno spanje.cilj
[Storitev]
Vnesite = onehot
ExecStart = / bin / systemctl znova zaženite upravitelja omrežja.storitev
[Namesti]
WantedBy = začasno ustavi.cilj
WantedBy = prezimovanje.cilj
WantedBy = hibridno spanje.cilj
Ta koda ustvari storitev, ki se zgodi enkrat (onehot) po treh ciljih, omenjenih v kodi. Koda, ki se izvede, je v tem primeru en ukaz. Prav tako lahko usmerite ExecStart na skript po vaši izbiri.
Zaključek
Če spremenite sistem, še posebej kako se zažene, lahko to storite sami, vendar pazite, da ima to veliko posledic za vsako storitev, zato se prepričajte, da je vaša koda stabilna in hitra.