Hoe kan u Systemd-dienste met Systemctl bestuur?

Die standaardstelsel en diensbestuurder vir die meeste Linux-verspreidings is nou systemd.


Die stelselproses vervang die SysV-init. Dit loop as die eerste proses na die kernstart en is verantwoordelik vir die Linux-gasheer om na die toestand te bring waar dit gebruik kan word. Dit is verantwoordelik vir die begin en bestuur van die dienste, die installering van lêerstelsels, die bestuur van hardeware, die opwekking van die aanmeldprop en nog baie meer.

‘N Sleutelvoordeel bo SysV is dat systemd soveel moontlik dienste parallel aanwend, wat die aanvangsproses versnel, en dat die aanmeldskerm vinniger gemaak word.

eenhede

Die items wat deur die stelsel bestuur word, word eenhede genoem. Die eenheidslêers is in / lib / systemd / system geleë.

Dienseenhede

Vir diensbestuur is die teiken eenhede dienseenhede wat eenheidslêers het met ‘n agtervoegsel van .diens.

Bestuur van stelseldienste

Die opdrag om systemd-eenhede te bestuur, is systemctl.

Begin en stop dienste

Gebruik die systemctl-opdrag om ‘n stelsel-diens te begin:

$ sudo systemctl beginnaam.diens

U kan .siens agtervoegsel verlaat. Byvoorbeeld, om die apache-bediener op Ubuntu te begin:

$ sudo systemctl begin apache2

Om ‘n lopende diens te stop:

$ sudo systemctl stop name.service

Om die apache-bediener op Ubuntu te stop:

$ sudo systemctl stop apache2

Herbegin en herlaai dienste

Gebruik ‘n herbegin-opdrag om ‘n lopende diens weer te begin:

$ sudo systemctl herbegin naam.diens

En waar die enigste herlaai-konfigurasielêer benodig word

$ sudo systemctl herlaai naam.service

Aktiveer en deaktiveer dienste

As u wil hê dat ‘n diens outomaties met die stelselstart moet begin, gebruik ‘enable command’:

$ sudo systemctl maak naam.diens moontlik

Om ‘n diens te deaktiveer vanaf die begin van die stelsel:

$ sudo systemctl deaktiveer name.service

As u dit deaktiveer, stop ‘n diens nie.

Besigtig diensstatus

Om inligting oor ‘n diens te sien:

$ sudo systemctl status name.service

Dit sal u die status van die diens en die eerste paar reëls van die loglêer wys. Dus, terwyl die diens loop, is die uitset van

sudo systemctl status apache2

is

apache2.service – Die Apache HTTP-bediener
Gelaai: gelaai (/lib/systemd/system/apache2.service; geaktiveer; verskaffer vooraf ingesteld: ingeskakel)
Inloop: /lib/systemd/system/apache2.service.d
└─apache2-systemd.conf
Aktief: aktief (hardloop) sedert di 2020-05-19 22:11:36 UTC; 4 dae gelede
Proses: 116002 ExecReload = / usr / sbin / apachectl grasieus (kode = verlaat, status = 0 / SUKSES)
Hoof-PID: 104165 (apache2)
Take: 55 (limiet: 1024)
CGroup: /system.slice/apache2.service
├─104165 / usr / sbin / apache2 -k begin
├─116006 / usr / sbin / apache2 -k begin
└─116007 / usr / sbin / apache2 -k begin

19 Mei 22:11:36 ubuntu18 systemd [1]: Die Apache HTTP-bediener begin…
19 Mei 22:11:36 ubuntu18 systemd [1]: Die Apache HTTP-bediener is begin.
21 Mei 06:25:01 ubuntu18 systemd [1]: Herlaai die Apache HTTP-bediener.
21 Mei 06:25:01 ubuntu18 systemd [1]: Herlaai die Apache HTTP-bediener.
22 Mei 06:25:01 ubuntu18 systemd [1]: Herlaai die Apache HTTP-bediener.

Om te kyk of ‘n diens aktief is:

$ sudo systemctl is-aktiewe naam.diens

Dus, terwyl die apache2-diens loop, is die uitvoer van systemctl is-active opdrag:

$ sudo systemctl is-aktiewe apache2
aktiewe

Om te kyk of ‘n diens geaktiveer is:

$ sudo systemctl is ingeskakel name.service.

Besigtigingstelseltoestand

Al die opdragte wat u tot dusver gesien het, word gebruik om ‘n enkele diens te bestuur. Gebruik die volgende stel opdragte as u ‘n oorsig van die stelselstatus wil hê:

Om alle eenheidstipes te sien

$ sudo systemctl -t hulp
Beskikbare eenhede:
diens
socket
teiken
toestel
berg
automounten
swap
timer
pad
sny
omvang

Gebruik lys-eenheid-lêers om alle geïnstalleerde eenhede te lys

$ sudo systemctl lys-eenheid-lêers
EENHEIDLêERSTAAT
proc-sys-fs-binfmt_misc.automaat staties
-.berg gegenereer
boot-efi.mount gegenereer
dev-hugepages.mount staties
dev-mqueue.mount staties
mnt.mount gegenereer
proc-sys-fs-binfmt_misc. statief
sys-fs-fuse-verbindings. staties
sys-kernel-config.mount staties
sys-kernel-debug.mount staties
acpid.path geaktiveer
apport-autoreport.path geaktiveer
systemd-ask-password-console.path staties
systemd-ask-password-plymouth.path staties
systemd-ask-password-wall.path staties
sessie-161. omvang verbygaande
accounts-daemon.service geaktiveer

Die uitvoer bevat slegs twee kolomme Eenheidslêer en -toestand. Die staat sal gewoonlik geaktiveer, gedeaktiveer, staties of gemaskerd wees.

  • statiese: Dit beteken dat die eenheid nie ingeskakel kan word nie, ‘n eenmalige aksie uitvoer of ‘n afhanklikheid van ‘n ander eenheid is en nie vanself kan bestuur word nie.
  • gemaskerde: ‘N Eenheid wat as gemaskerd is, beteken dat dit heeltemal onstabiel is, aangesien dit gekoppel is aan / dev / null. Dit word die maskering van die eenheid genoem. Dit voorkom dat die diens, handmatig of outomaties, begin word.

Lys alle geïnstalleerde dienste

Die opdrag van systemctl-lys-eenheid-lêers met -t of -tipe-filter wys slegs die toestand van geïnstalleerde dienste.

$ sudo systemctl lys-eenheid-lêers-t diens

EENHEIDLêERSTAAT
accounts-daemon.service geaktiveer
acpid.service gedeaktiveer
apache-htcacheclean.service gedeaktiveer
[Email protected] gestremde
apache2.service geaktiveer
[Email protected] gestremde
apparmor.service geaktiveer
apport-autoreport.service staties
[Email protected] statiese
apport.service gegenereer
apt-Daily-upgrade.service staties
apt-Daily.service staties
atd.service aangeskakel
[Email protected] enabled
blk-beskikbaarheid.diens geaktiveer
bootlogd.service gemasker
bootlogs.service gemasker

Gebruik lys-eenhede met -t-diensfilter om alle aktiewe dienseenhede te sien

$ sudo systemctl lys-eenhede-t diens

EENHEIDLAD AKTIEWE SUBBESKRYWING
accounts-daemon.service het aktiewe lopende rekeningdiens gelaai
apache2.service gelaai aktief met die Apache HTTP-bediener
apparmor.service gelaai met aktiewe en verlaat AppArmor-inisialisering
apport.service het aktiewe en uitgelate LSB gelaai: outomatiese opwekking van ongelukkeverslae
atd.service het aktiewe lopende Uitgestelde uitvoeringsbeplanner gelaai
blk-beskikbaarheid.service gelaai aktief verlaat Beskikbaarheid van bloktoestelle
cloud-config.service gelaai aktief verlaat Pas die instellings toe wat in cloud-con toegepas word
cloud-final.service gelaai aktief verlaat Uit te voer wolk gebruiker / finale skrifte
cloud-init-local.service gelaai aktief verlaat Aanvanklike cloud-init-baan (vooraf netwerk)
cloud-init.service gelaai aktief verlaat Aanvanklike cloud-init-baan (metadatadiens
console-setup.service gelaai aktief verlaat Stel konsole font en sleutelbord
cron.service gelaai aktief uitgevoer Gereelde agtergrondprogram verwerking dae

Die uitvoer bevat die volgende kolomme:

  • EENHEID: Die naam van die stelseldiensteenheid
  • LOAD: Toon aan of die definisie van die eenheid behoorlik gelees en gelaai is
  • ACTIVE: Beskryf of die eenheid aktief is.
  • SUB: Lae vlak aktiveringstoestand van die eenheid, met meer inligting oor die eenheid. Dit sal afhang van die tipe eenheid.
  • BESKRYWING: Die beskrywing van die dienseenheid.

Afsluiting

Ek hoop dit gee u ‘n idee oor die gebruik van systemctl om dienste op Linux te bestuur. As u belangstel om meer te wete te kom, kan u dit gaan kyk Linux-meesterskursus.

Tags:

  • 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