Linuxissa systemctl:llä on keskeinen rooli init-jär­jes­tel­män ja pal­ve­lun­hal­lin­taoh­jel­man systemd:n hal­lin­nas­sa. Systemctl:n avulla käyttäjät voivat hallita systemd-pal­ve­lui­ta, niiden yksiköitä ja asetuksia, mikä tekee siitä jär­jes­tel­män­hal­lin­nan kannalta vält­tä­mät­tö­män työkalun. Käyn­nis­tyk­sen hal­lin­nas­ta jär­jes­tel­män tilojen mu­kaut­ta­mi­seen – systemctl tarjoaa kattavan va­li­koi­man toi­min­to­ja.

Mikä on systemctl?

systemctl on ko­men­to­ri­vi­työ­ka­lu, jolla hallitaan systemd:tä, joka on Linux-käyt­tö­jär­jes­tel­mien käyn­nis­tys­jär­jes­tel­mä ja jär­jes­tel­män­hal­lin­taoh­jel­ma. systemd on nykyään va­kio­käyn­nis­tys­jär­jes­tel­mä useissa Linux-ja­ke­luis­sa ja Linux-pal­ve­lin­ja­ke­luis­sa, kuten Ubuntu, Debian, Fedora, Red Hat En­terpri­se Linux (RHEL), CentOS, Arch Linux, Mageia ja Gentoo. Sitä ei kui­ten­kaan ole otettu käyttöön kaikissa ja­ke­luis­sa.

Systemd-eko­sys­tee­mis­sä systemctl:llä on keskeinen rooli jär­jes­tel­mä­pal­ve­lui­den hal­lin­nas­sa, mää­ri­tyk­sis­sä, käyn­nis­tys­käyt­täy­ty­mi­ses­sä ja jär­jes­tel­män yl­lä­pi­dos­sa. Työkalun toi­min­nal­li­suus ulottuu pelkkää pal­ve­lui­den käyn­nis­tä­mis­tä ja py­säyt­tä­mis­tä pi­dem­mäl­le. Se tarjoaa kattavan hallinnan lähes kaikkiin Linux-jär­jes­tel­män osa-alueisiin.

Seu­raa­vas­sa oppaassa on käytännön koo­die­si­merk­ke­jä ja Linux-komentoja systemctl:n käyttöön. Alla olevat esimerkit pe­rus­tu­vat **Ubuntu 22.04:**ään.

Pal­ve­lun­hal­lin­ta

Init-jär­jes­tel­män en­si­si­jai­se­na ta­voit­tee­na on käyn­nis­tää Linux-ytimen käyn­nis­ty­mi­sen jälkeen tar­vit­ta­vat kom­po­nen­tit (käyt­tö­jär­jes­tel­män kom­po­nen­tit). Init-jär­jes­tel­mää käytetään myös pal­ve­li­mel­la olevien pal­ve­lui­den ja taus­tapro­ses­sien te­hok­kaa­seen hal­lin­taan milloin tahansa jär­jes­tel­män käynnin aikana.

Systemd-ym­pä­ris­tös­sä suurin osa pro­ses­seis­ta keskittyy jär­jes­tel­män hal­lin­noi­miin re­surs­sei­hin. Näitä kutsutaan yk­si­köik­si. Yksiköt luo­ki­tel­laan niiden edustaman resurssin tyypin mukaan, ja ne mää­ri­tel­lään yk­sik­kö­tie­dos­tois­sa. Yksikön tyypin tunnistaa tie­dos­to­tun­nis­tees­ta.

Pal­ve­lui­ta hal­lit­taes­sa ovat tärkeässä asemassa pal­ve­lu­yk­si­köt, joiden nimi päättyy päät­tee­seen .service. Tätä päätettä ei kui­ten­kaan aina tarvitse käyttää pal­ve­lu­jen hal­lin­ta­ko­men­nois­sa. systemd tunnistaa, että tällaiset komennot viit­taa­vat yleensä pal­ve­lui­hin.

Pal­ve­lui­den käyn­nis­tä­mi­nen ja py­säyt­tä­mi­nen

Yksi ylei­sim­mis­tä teh­tä­vis­tä, joita Linuxissa suo­ri­te­taan systemctl-ko­men­nol­la, on pal­ve­lu­jen käyn­nis­tä­mi­nen ja py­säyt­tä­mi­nen. Nämä toiminnot ovat jär­jes­tel­män­hal­lin­nan perusta, ja niiden avulla voit hallita jär­jes­tel­mäs­sä käynnissä olevia pro­ses­se­ja. Palvelun käyn­nis­tä­mi­seen käytetään komentoa start. Jos työs­ken­te­let käyt­tä­jä­nä, jolla ei ole pää­käyt­tä­jän oikeuksia, sinun on käy­tet­tä­vä sudo.

$ sudo systemctl start application.service
bash

Koska systemd on suun­ni­tel­tu etsimään pal­ve­lun­hal­lin­ta­ko­men­to­ja varten au­to­maat­ti­ses­ti .service-t iedostoja , komento voidaan kir­joit­taa myös yk­sin­ker­tais­te­tus­sa muodossa:

$ sudo systemctl start application
bash

Esi­mer­kik­si Apache-verk­ko­pal­ve­li­men käyn­nis­tä­mi­sek­si kirjoitat:

$ sudo systemctl start apache2
bash

Jos haluat pysäyttää käynnissä olevan palvelun, käytä stop:

$ sudo systemctl stop application.service
bash

Käynnistä uudelleen ja lataa uudelleen

Jos haluat käyn­nis­tää palvelun uudelleen – mikä on usein tarpeen asetusten muutoksen jälkeen – käytä komentoa restart:

$ sudo systemctl restart application.service
bash

Jos sovellus pystyy lataamaan ase­tus­tie­dos­ton­sa uudelleen käyn­nis­tä­mät­tä sitä uudelleen, prosessi voidaan käyn­nis­tää reload -ko­men­nol­la:

$ sudo systemctl reload application.service
bash

Jos et ole varma, tarjoaako palvelu mah­dol­li­suut­ta ladata asetukset uudelleen, voit käyttää komentoa reload-or-restart. Tämä lataa asetukset uudelleen, jos tämä toiminto on tuettu. Jos sitä ei tueta, komento käyn­nis­tää palvelun uudelleen asetusten päi­vit­tä­mi­sen aloit­ta­mi­sek­si.

$ sudo systemctl reload-or-restart application.service
bash

Pal­ve­lui­den käyt­töön­ot­to ja käytöstä pois­ta­mi­nen

Pal­ve­lui­ta ak­ti­voi­mal­la ja deak­ti­voi­mal­la voit määrittää, käyn­nis­tyy­kö palvelu au­to­maat­ti­ses­ti jär­jes­tel­män käyn­nis­tyes­sä. Tämä on erityisen tärkeää jär­jes­tel­män suo­ri­tus­ky­vyn, tie­to­tur­van ja eri pal­ve­lui­den välisten riip­pu­vuus­suh­tei­den hallinnan kannalta. Määritä au­to­maat­ti­nen käyn­nis­tys jär­jes­tel­män käyn­nis­tyk­sen yh­tey­des­sä enable:

$ sudo systemctl enable application.service
bash

Kun tämä prosessi suo­ri­te­taan, luodaan sym­bo­li­nen linkki. Tämä linkki yhdistää jär­jes­tel­mä­pal­ve­lu­tie­dos­ton kopion. Jär­jes­tel­mä­pal­ve­lu­tie­dos­to sijaitsee yleensä ha­ke­mis­tos­sa /lib/systemd/system tai /etc/systemd/system. Täältä löydät myös kiin­to­le­vyl­lä olevan ha­ke­mis­ton, josta systemd etsii au­to­maat­ti­sen käyn­nis­tyk­sen tie­dos­to­ja. Tämä tapahtuu yleensä ha­ke­mis­tos­sa /etc/systemd/system/some_target.target.wants.

$ sudo systemctl enable application.service
bash

Jos haluat estää palvelun käyn­nis­ty­mi­sen au­to­maat­ti­ses­ti jär­jes­tel­män käyn­nis­tyes­sä, käytä disable:

$ sudo systemctl disable application.service
bash

Tämän jälkeen sym­bo­li­nen linkki, joka määrittää au­to­maat­ti­sen käyn­nis­ty­mi­sen jär­jes­tel­män käyn­nis­tyes­sä, pois­te­taan.

Huomio: Pelkkä palvelun ak­ti­voin­ti ei käynnistä sitä vä­lit­tö­mäs­ti ny­kyi­ses­sä is­tun­nos­sa. Jos haluat käyn­nis­tää palvelun vä­lit­tö­mäs­ti ja määrittää sen käyn­nis­ty­mään au­to­maat­ti­ses­ti jär­jes­tel­män käyn­nis­tyes­sä, sinun on suo­ri­tet­ta­va sekä komento start että komento enable.

Tarkista pal­ve­lu­jen tila

systemctl-ko­men­nol­la voidaan näyttää tietoja pal­ve­lui­den tilasta. Tämä on erityisen hyö­dyl­lis­tä jär­jes­tel­mä- ja so­vel­lus­pal­ve­lui­den nykyisen tilan seu­ran­nas­sa ja vian­mää­ri­tyk­ses­sä. Käytä tar­kis­tuk­seen komentoa status:

$ systemctl status application.service
bash

Tämä komento tarjoaa mo­nen­lais­ta tietoa, kuten palvelun nykyisen tilan (ak­tii­vi­nen, pas­sii­vi­nen, viallinen jne.), viimeksi suo­ri­te­tut prosessit ja lo­ki­vies­tit, cgroup-hie­rar­kian sekä en­sim­mäi­set lokirivit.

Linuxissa palvelun nykyisen tilan tar­kis­ta­mi­seen systemctl-ko­men­nol­la käytetään is-active. Tämä komento kertoo, onko palvelu tällä hetkellä ak­tii­vi­nen vai ei:

$ systemctl is-active application.service
bash

Nykyinen tila mää­ri­te­tään yleensä arvoksi active, jos palvelu on ak­tii­vi­nen, tai arvoksi inactive, jos palvelu on pas­sii­vi­nen.

Voit tarkistaa, onko palvelu mää­ri­tet­ty käyn­nis­ty­mään au­to­maat­ti­ses­ti jär­jes­tel­män käyn­nis­tyk­sen yh­tey­des­sä, käyt­tä­mäl­lä is-enabled. Tämä on erityisen hyö­dyl­lis­tä pal­ve­lu­jen käyn­nis­tys­a­se­tus­ten hal­lin­nas­sa Linux-jär­jes­tel­mäs­sä.

$ systemctl is-enabled application.service
bash

Komento ilmoittaa, onko palvelu käytössä vai pois käytöstä, ja asettaa vas­tauk­sen pe­rus­teel­la pois­tu­mis­koo­dik­si joko ”0” tai ”1”.

Voit myös käyttää komentoa is-failed tar­kis­taak­se­si, onko tietyllä pal­ve­lul­la virhetila:

$ systemctl is-failed application.service
bash

Jos suoritus onnistuu, tuloksena on active. Jos tapahtuu virhe, tulos on failed. Jos laite on py­säy­tet­ty tar­koi­tuk­sel­la, vas­tauk­se­na voi näkyä unknown tai inactive. Lo­pe­tus­ti­la 0 tar­koit­taa, että on ta­pah­tu­nut virhe, kun taas 1 tar­koit­taa mitä tahansa muuta tilaa.

Jär­jes­tel­män tila

Tähän mennessä esitellyt komennot ovat kes­kit­ty­neet yk­sit­täis­ten pal­ve­lui­den hal­lin­taan. Nämä komennot eivät kui­ten­kaan anna tietoa jär­jes­tel­män ny­ky­ti­las­ta. On olemassa useita systemctl-komentoja, jotka tarjoavat juuri tällaista tietoa.

list-units on hyö­dyl­li­nen, kun halutaan saada yleiskuva Linuxin ny­kyi­sis­tä yk­si­köis­tä:

$ systemctl list-units
bash

Kun suoritat tämän komennon, systemctl näyttää luettelon systemd:n hal­lin­noi­mis­ta yk­si­köis­tä. Luettelon tu­los­tees­sa on useita sa­rak­kei­ta, jotka si­säl­tä­vät tarkempia tietoja kustakin yksiköstä. Seuraavat sarakkeet näkyvät:

  • UNIT: Yksikön nimi (tämä otetaan usein yksikön tie­dos­to­ni­mes­tä, esim. sshd.service SSH-pal­ve­li­mel­le)
  • LOAD: Ilmaisee, onko yk­sik­kö­tie­dos­to ladattu on­nis­tu­nees­ti; mah­dol­li­set arvot ovat loaded, not-found tai error.
  • ACTIVE: Yksikön ak­tii­vi­suus­ti­la, joka voi vaihdella tilojen välillä, kuten active, inactive, activating tai deactivating
  • SUB: Alainen ak­tii­vi­suus­ti­la, joka antaa li­sä­tie­to­ja yksikön tilasta (esi­mer­kik­si yksiköllä active voi olla SUB-tila running, exited tai failed).
  • DESC­RIP­TION: Lyhyt kuvaus yksiköstä, joka usein kuvaa yksikön tar­koi­tus­ta tai toi­min­nal­li­suut­ta

Komento näyttää kuitenkin ole­tuk­se­na vain ak­tii­vi­set yksiköt. Tästä syystä tulosteen LOAD-sa­rak­kees­sa näkyy yleensä loaded ja ACTIVE-sa­rak­kees­sa active. Li­sä­pa­ra­met­reil­la systemctl voidaan määrittää näyt­tä­mään myös muita tietoja. Esi­mer­kik­si pa­ra­met­ril­la --all näytetään kaikki systemd:n lataamat yksiköt niiden ny­kyi­ses­tä ak­tii­vi­suus­ti­las­ta riip­pu­mat­ta.

$ systemctl list-units --all
bash

Tulosta voidaan tarkentaa edelleen käyt­tä­mäl­lä li­sä­merk­ke­jä, kuten --state=, joilla suo­da­te­taan tiettyjä tiloja LOAD-, ACTIVE- tai SUB-luokista. On tärkeää säilyttää merkki --all, jotta myös pas­sii­vi­set yksiköt tulevat näkyviin:

$ systemctl list-units --all --state=inactive
bash

Voit myös käyttää suo­da­tin­ta --type= tiettyjen yk­sik­kö­tyyp­pien näyt­tä­mi­seen, esi­mer­kik­si jos haluat nähdä vain ak­tii­vi­pal­ve­luk­ses­sa olevat yksiköt:

$ systemctl list-units --type=service
bash

Luettele kaikki yk­sik­kö­tie­dos­tot

Jos haluat näyttää luettelon kaikista Linuxin yk­sik­kö­tie­dos­tois­ta systemctl-ko­men­nol­la (mukaan lukien ne, joita systemd ei ole yrittänyt ladata), voit käyttää list-unit-files. Tämä komento näyttää kaikki yk­sik­kö­tie­dos­tot, jotka systemd tunnistaa, mukaan lukien palvelut, socketit, kohteet ja muut.

$ systemctl list-units-files
bash

Komento näyttää yk­sik­kö­tie­dos­to­jen eri tilat. Nämä tilat kertovat, miten kyseiset yksiköt on mää­ri­tet­ty, eri­tyi­ses­ti niiden käyt­täy­ty­mi­sen osalta jär­jes­tel­män käyn­nis­tyk­sen yh­tey­des­sä. Ylei­sim­mät tilat ovat

  • Käytössä: Laite on mää­ri­tet­ty käyn­nis­ty­mään au­to­maat­ti­ses­ti jär­jes­tel­män käyn­nis­tyk­sen yh­tey­des­sä.
  • Pois käytöstä: Laitetta ei ole mää­ri­tet­ty käyn­nis­ty­mään au­to­maat­ti­ses­ti käyn­nis­tyspro­ses­sin aikana.
  • Pii­lo­tet­tu: Laite on täysin pois käytöstä, joten sitä ei voi käyn­nis­tää ma­nu­aa­li­ses­ti tai au­to­maat­ti­ses­ti.
  • Staat­ti­nen: Yksikköä ei käyn­nis­te­tä it­se­näi­ses­ti, vaan se riippuu yleensä toisesta yksiköstä ja käyn­nis­tyy vain tässä yh­tey­des­sä.

Yksikön johto

Yksi systemctl:n pää­teh­tä­vis­tä on yk­si­köi­den hallinta. systemctl tarjoaa joukon hyö­dyl­li­siä komentoja ja vaih­toeh­to­ja, joiden avulla on helpompi saada tarkkoja tietoja yk­sit­täi­sis­tä yk­si­köis­tä ja hallita niitä.

Näytä yk­sik­kö­tie­dos­to

Jos haluat, että tietyn yk­sik­kö­tie­dos­ton sisältö näkyy suoraan kon­so­lis­sa, voit käyttää komentoa cat. Jos haluat esi­mer­kik­si tar­kas­tel­la palvelun, kuten ssh.service, yk­sik­kö­tie­dos­toa, kirjoita:

$ systemctl cat ssh.service
bash

Näytä riip­pu­vuu­det

Jos käytät list-dependencies, tietyn yksikön riip­pu­vuu­det näytetään puu­ra­ken­tee­na. Komento näyttää tältä:

$ systemctl list-dependencies sshd.service
bash

Ole­tuk­se­na näytetään .target yksikön riip­pu­vuu­det, jotka edustavat jär­jes­tel­män eri tiloja. Käytä lippua --all, jos haluat täy­del­li­sen, re­kur­sii­vi­sen luettelon kaikista riip­pu­vuuk­sis­ta.

Jos haluat näyttää kään­tei­set riip­pu­vuu­det (eli yksiköt, jotka riippuvat mää­ri­te­tys­tä yksiköstä), lisää komentoon --reverse. Lippujen --before ja —after avulla voit myös tar­kas­tel­la riip­pu­vuuk­sia, jotka alkavat ennen kyseistä yksikköä tai sen jälkeen.

Yk­si­köi­den peit­tä­mi­nen ja peitteen pois­ta­mi­nen

Yksikön peit­tä­mi­nen poistaa sen käytöstä niin, ettei sitä voi käyn­nis­tää ma­nu­aa­li­ses­ti tai au­to­maat­ti­ses­ti. Tätä käytetään usein var­mis­ta­maan, ettei palvelua tai yksikköä käyn­nis­te­tä va­hin­gos­sa tai au­to­maat­ti­ses­ti riip­pu­vuuk­sien vuoksi. Peit­tä­mi­nen tapahtuu luomalla kyseisen yksikön tie­dos­tos­ta sym­bo­li­nen linkki tie­dos­toon /dev/null ko­men­nol­la mask:

$ sudo systemctl mask nginx.service
bash

Tämä varmistaa, että Nginx-palvelua ei voida käyn­nis­tää ma­nu­aa­li­ses­ti tai au­to­maat­ti­ses­ti, kun se on pii­lo­te­tus­sa tilassa.

Peitteen pois­ta­mi­nen poistaa yksikön peitetyn tilan, jolloin se voidaan käyn­nis­tää uudelleen nor­maa­lis­ti. Peitteen pois­ta­mi­seen käy­tet­tä­vä komento on unmask:

$ sudo systemctl unmask nginx.service
bash

Yk­sik­kö­tie­dos­to­jen muokkaus

systemctl:ssä on toi­min­to­ja yk­sik­kö­tie­dos­to­jen mu­kaut­ta­mi­seen ja muok­kaa­mi­seen. Nämä toiminnot otettiin käyttöön systemd-versiossa 218. Jos käytät komentoa edit, valitun yksikön yk­sik­kö­tie­dos­to avautuu au­to­maat­ti­ses­ti muo­kat­ta­vak­si:

$ sudo systemctl edit nginx.service
bash

Muok­kaa­mi­sen yh­tey­des­sä luodaan tyhjä tiedosto, johon voidaan lisätä tai muuttaa yk­sik­kö­mää­rit­te­lyn ohjeita. Jo­kai­sel­le yksikölle (esim. nginx.service) luodaan /etc/systemd/system-ha­ke­mis­toon ali­ha­ke­mis­to, jonka tie­dos­to­ni­meen lisätään lop­pu­lii­te .d. Edellä olevassa esi­mer­kis­sä ali­ha­ke­mis­to olisi nginx.service.d.

Tähän ali­kan­sioon luodaan override.conf-tiedosto. Kun systemd lataa yksikön, se yhdistää tämän pät­kä­tie­dos­ton sisällön al­ku­pe­räi­seen yk­sik­kö­tie­dos­toon. Tällöin pätkän ohjeilla on etusija. Koko yk­sik­kö­tie­dos­ton kä­sit­te­lyyn voidaan käyttää lippua --full:

$ sudo systemctl edit --full nginx.service
bash

Pai­na­mal­la --full avaat olemassa olevan yk­sik­kö­tie­dos­ton edi­to­ris­sa muo­kat­ta­vak­si. Kun poistut edi­to­ris­ta, jär­jes­tel­mä tallentaa muokatun tiedoston kansioon /etc/systemd/system.

Jos haluat kumota itse tekemäsi muutokset, voit joko poistaa laitteen ase­tus­kan­sion .d tai muokatun tiedoston kohdasta /etc/systemd/system:

$ sudo rm -r /etc/systemd/system/nginx.service.d
bash

Täysin uu­dis­tet­tu yk­sik­kö­tie­dos­to voidaan poistaa seu­raa­val­la ko­men­nol­la:

$ sudo rm /etc/systemd/system/nginx.service
bash

Kun olet poistanut tiedoston tai kansion, sinun on ladattava systemd uudelleen, jotta se lakkaa viit­taa­mas­ta pois­tet­tui­hin tie­dos­toi­hin ja siirtyy käyt­tä­mään jär­jes­tel­män omaa kopiota:

$ sudo systemctl daemon-reload
bash

Jär­jes­tel­män tilan (käyt­tö­ta­son) sää­tä­mi­nen ta­voit­tei­den avulla

systemd käyttää en­si­si­jai­ses­ti kohteita (target) eri yk­si­köi­den ryh­mit­te­le­mi­seen. Tällä pyritään saa­vut­ta­maan tietty jär­jes­tel­män tila, samalla tavalla kuin muiden käyn­nis­tys­jär­jes­tel­mien ajotasot. Tiedostot, joiden tie­dos­to­tun­nis­te .target, toimivat suun­ta­vii­voi­na, jotka il­mai­se­vat tiettyjen toi­min­to­jen saa­ta­vuus­ti­lan. Näin käyttäjät voivat määrittää halutun ko­ko­nais­ti­lan sen sijaan, että mää­rit­täi­si­vät tar­vit­ta­vat yk­sit­täi­set yksiköt.

Käytännön esi­merk­ki­nä voidaan mainita swap.target, joka ilmaisee valmiuden vaihtoon. Vaih­topro­ses­siin osal­lis­tu­vat yksiköt voivat sovittaa toi­min­tan­sa tähän ta­voit­tee­seen käyt­tä­mäl­lä ase­tus­vaih­toeh­to­ja kuten WantedBy= tai RequiredBy=. Toisaalta yksiköt, jotka ovat riip­pu­vai­sia vaihdosta, voivat ilmaista tämän ase­tuk­sil­la kuten Wants=, Requires= ja After=, jotta ne voivat ilmaista riip­pu­vuu­ten­sa ja käyn­nis­tys­jär­jes­tyk­sen­sä suhteessa vaihtoon.

Hae ja määritä ole­tus­koh­de

Ole­tus­koh­teen hakeminen ja mää­rit­tä­mi­nen mah­dol­lis­taa jär­jes­tel­män ole­tus­ti­lan mää­rit­tä­mi­sen käyn­nis­tyk­sen yh­tey­des­sä. Näin löydät jär­jes­tel­mä­si ole­tus­koh­teen:

$ systemctl get-default
Output
multi-user.target
bash

Jos haluat muuttaa ole­tus­koh­det­ta, käytä komentoa set-default yhdessä kohteen nimen kanssa. Aseta ole­tus­koh­teek­si graphical.target, joka käyn­nis­tää graafisen käyt­tö­liit­ty­män, seu­raa­val­la ko­men­nol­la:

$ sudo systemctl set-default graphical.target
bash

Luettelo saa­ta­vil­la olevista kohteista

Voit luetella kaikki jär­jes­tel­mäs­sä­si käy­tet­tä­vis­sä olevat kohteet seu­raa­val­la ko­men­nol­la:

$ systemctl list-unit-files --type=target
bash

Tämä näyttää luettelon kaikista jär­jes­tel­mään asen­ne­tuis­ta koh­deyk­sik­kö­tie­dos­tois­ta. Jo­kai­ses­ta kohteesta näytetään polku ja nykyinen tila (esim. aktivoitu tai deak­ti­voi­tu).

Erotella kohteet

Käsköllä isolate voit aktivoida sa­ma­nai­kai­ses­ti kaikki yksiköt, jotka on liitetty tiettyyn koh­tee­seen, ja pysäyttää kaikki muut yksiköt, joita ei ole liitetty siihen.

Oletetaan, että työs­ken­te­let ym­pä­ris­tös­sä, jossa graphical.target on käytössä, ja haluat siirtyä puh­taa­seen mo­ni­käyt­tä­jä­ti­laan ilman graafista käyt­tö­liit­ty­mää. Tällöin voit poistaa graafisen jär­jes­tel­män käytöstä eris­tä­mäl­lä multi-user.target. Koska graphical.target on riip­pu­vai­nen multi-user.targetsta, mutta päin­vas­toin ei, kaikki graafiset palvelut py­säh­ty­vät siir­ty­mi­sen yh­tey­des­sä.

Ennen kohteen eris­tä­mis­tä sinun tulisi kuitenkin tarkistaa siihen liittyvät riip­pu­vuu­det. Näin vältät tärkeiden pro­ses­sien ta­hat­to­man py­säyt­tä­mi­sen.

$ systemctl list-dependencies multi-user.target
bash

Jos olet valinnut ne ak­tii­vi­set yksiköt, jotka haluat säilyttää, ja hyväksyt ne, voit määrittää halutun kohteen:

$ sudo systemctl isolate multi-user.target
bash

Pi­ka­ku­vak­keet tär­kei­siin ta­pah­tu­miin

Kes­kei­sil­le toi­min­noil­le, kuten jär­jes­tel­män sam­mut­ta­mi­sel­le tai uu­del­leen­käyn­nis­tä­mi­sel­le, on mää­ri­tet­ty omat komennot. Linuxissa systemctl tarjoaa kuitenkin myös käteviä pi­ka­ko­men­to­ja, jotka tuovat li­sä­toi­min­to­ja. Jos haluat esi­mer­kik­si siirtää jär­jes­tel­män pe­las­tus­ti­laan (yhden käyttäjän tilaan), voit käyttää rescue isolate rescue.target sijaan:

$ sudo systemctl rescue
bash

Voit sammuttaa jär­jes­tel­män numerolla stop:

$ sudo systemctl stop
bash

Voit käyn­nis­tää täy­del­li­sen sam­mu­tuk­sen numerolla poweroff:

$ sudo systemctl poweroff
bash

Toisaalta voit käyn­nis­tää uu­del­leen­käyn­nis­tyk­sen numerolla reboot:

$ sudo systemctl reboot
bash

Jos olet kir­jau­tu­nut sisään, nämä komennot antavat sinulle tietoa tulevista ta­pah­tu­mis­ta. Pelkkä komennon suo­rit­ta­mi­nen tai kohteen eris­tä­mi­nen ei anna sinulle tätä tietoa. On tärkeää tietää, että monet tie­to­ko­neet yh­dis­tä­vät näiden toi­min­to­jen lyhyemmät komennot systemd-palveluun var­mis­taak­seen niiden oikean suo­rit­ta­mi­sen.

Seuraava komento riittää yleensä jär­jes­tel­män uu­del­leen­käyn­nis­tyk­seen:

$ sudo reboot
bash
Siirry pää­va­lik­koon