Systemd

Linux.fista
Versio hetkellä 27. lokakuuta 2011 kello 17.55 – tehnyt Muep (keskustelu | muokkaukset) (Jonkinlainen systemd-artikkelin alku)
(ero) ← Vanhempi versio | Nykyinen versio (ero) | Uudempi versio → (ero)
Siirry navigaatioon Siirry hakuun

Kuten Upstart, Systemd on käyttöjärjestelmän ja siinä ajettavien palveluiden käynnistymistä ja sammuttamista ohjaava ns. init-järjestelmä. Se on tällä hetkellä käytössä oletuksena uusimmissa Fedoran versioissa.

Ominaisuuksia

  • Nopeuttaa järjestelmän käynnistymistä suorittamalla toisistaan riippumattomia tehtäviä rinnakkaisesti
  • Tarjoaa valmiita toimintoja joilla voidaan korvata pitkiä perinteisten init-järjestelmien komentosarjoja
  • Käyttää Linuxin control group -toimintoa prosessien seuraamiseen
  • Yhteensopiva System V init -komentosarjojen kanssa
  • Tarvittaesa viivästää palveluiden aktivointia siihen asti että joku yrittää niitä käyttää

Yksiköt

Tavallisimmin Systemd:n tarjoamia työkaluja käytetään palveluiden, kuten sshd tai Cups, hallintaan. Systemd hallitsee palveluiden lisäksi myös muutamaa muunlaista asiaa. Erilaisille systemd:lla käsiteltäville asioille yhteinen termi on yksikkö (englanniksi unit).

Erityyppiset yksiköt erottaa toisistaan helposti nimen loppuosan perusteella. Palvelut päättyvät aina .service-merkkijonoon, kun taas esimerkiksi tiedostojärjestelmien liitospisteitä vastaavien yksiköiden nimien lopussa on aina .mount.

Erityyppisten yksiköiden olemassaolo kannattaa huomioida Systemd:n työkaluja käyttäessä. Usein järjestelmää hallittaessa tarvitsee käsitellä lähinnä .service- ja .socket -tyyppisiä yksiköitä.

Systemctl

Systemctl-työkalua käytetään systemd:n ohjaamiseen. Sen avulla voidaan varsinkin hallita palveluiden käynnistymistä ja sammuttamista. Tässä on käytetty esimerkkinä Avahi-palvelun mukana tulevaa avahi-daemon.serviceä, mutta komennot toimivat vastaavasti myös monille muille palveluille.

Tietoa palveluista

Systemctl:n list-units -komennolla saa listauksen kaikista järjestelmän palveluista. Ilman --all -valitsinta saa listauksen vain aktiivisista yksiköistä. Lisäksi --full -valitsin on usein tarpeellinen jotta pitkät yksikönnimet saa kokonaan näkyviin.

systemctl list-units --all

Systemctl:n status-komennolla saa selvitettyä tärkeimmät yhteen yksikköön liittyvät tiedot.

systemctl status avahi-daemon.service

Tämän tulisi tulostaa jotain seuraavanlaista:

avahi-daemon.service - Avahi mDNS/DNS-SD Stack
Loaded: loaded (/lib/systemd/system/avahi-daemon.service; enabled)
Active: active (running) since Thu, 27 Oct 2011 10:15:57 +0300; 7h ago
Main PID: 889 (avahi-daemon)
Status: "avahi-daemon 0.6.30 starting up."
CGroup: name=systemd:/system/avahi-daemon.service

Show-komennolla puolestaan saa pidemmän listauksen avahi-daemon.serviceen liittyvistä tiedoista. Se voi olla hyödyllistä esimerkiksi yksikkötiedostoja kirjoitettaessa.

systemctl show avahi-daemon.service

Palveluiden käynnistäminen ja pysäyttäminen

# Käynnistä Avahi-palvelu
systemctl start avahi-daemon.service
# Pysäyttäminen vastaavasti stop-käskyllä:
systemctl stop avahi-daemon.service

Automaattisesti käynnistettävät palvelut

Edellämainitut start- ja stop-komennot käynnistävät ja pysäyttävät yksikön, mutta ne eivät vaikuta siihen, mitä käynnistetään automaattisesti. Tähän sen sijaan käytettäisiin systemctl:n enable- ja disable-komentoja.

# Käynnistä sshd.service automaattisesti järjestelmän käynnistyessä
systemctl enable sshd.service
# Poista sshd.service automaattisesti käynnistettävien yksiköiden joukosta
systemctl disable sshd.service