Ero sivun ”Systemd” versioiden välillä

Siirry navigaatioon Siirry hakuun
Heikkiket (keskustelu | muokkaukset)
Lisätty Palvelin-malline. Korvattu Systemd:n kritiikkiosio muiden Init-järjestelmien esittelyllä, koska se on ehkä lukijalle tarpeellisempaa.
EgoLuser (keskustelu | muokkaukset)
p Paranneltu ulkoasua.
 
(4 välissä olevaa versiota 3 käyttäjän tekeminä ei näytetä)
Rivi 1: Rivi 1:
{{DISPLAYTITLE:{{lcfirst:{{PAGENAME}}}}}}
{{DISPLAYTITLE:{{lcfirst:{{PAGENAME}}}}}}
{{Ohjelma
| nimi          = Systemd
| logo          =
| kuva          =
| kuvateksti    =
| tekijä        =
| kehittäjä      =
| moottori      =
| ensijulkaisu  =
| vakaaversio    =
| vakaapvm      =
| kehitysversio  =
| kehityspvm    =
| ohjelmoitu    = [[C]]
| käyttöliittymä = [[komentorivi]]
| tyyppi        =
| lisenssi      = [[GPL]]
| kotisivu      = [https://systemd.io systemd.io]
| lähdekoodi    = [https://github.com/systemd/systemd/ github.com/systemd/systemd/]
}}
'''systemd''' on käyttöjärjestelmän ja siinä ajettavien palveluiden käynnistymistä ja sammuttamista ohjaava ns. [[init]]-järjestelmä. Useimmat jakelut ovat siirtyneet käyttämään systemd-järjestelmää.
'''systemd''' on käyttöjärjestelmän ja siinä ajettavien palveluiden käynnistymistä ja sammuttamista ohjaava ns. [[init]]-järjestelmä. Useimmat jakelut ovat siirtyneet käyttämään systemd-järjestelmää.


Rivi 150: Rivi 171:
Systemd tarjoaa perinteisen [[cron]]-palvelun tapaiset toiminnot komentojen ajastamiseen. Esimerkiksi edellisessä kohdassa tehty hello-palvelu voitaisiin ajastaa käynnistymään kymmenen minuutin välein luomalla tiedosto <tt>/etc/systemd/system/hello.timer</tt> tähän tapaan:
Systemd tarjoaa perinteisen [[cron]]-palvelun tapaiset toiminnot komentojen ajastamiseen. Esimerkiksi edellisessä kohdassa tehty hello-palvelu voitaisiin ajastaa käynnistymään kymmenen minuutin välein luomalla tiedosto <tt>/etc/systemd/system/hello.timer</tt> tähän tapaan:


<source>
[Unit]
[Unit]
Description=Ajetaan hello-palvelu kymmenen minuutin välein
Description=Ajetaan hello-palvelu kymmenen minuutin välein
 
[Timer]
# Ensimmäinen ajo 10 minuuttia järjestelmän käynnistyksen jälkeen
OnBootSec=10min
# Ajetaan uudelleen 10 minuuttia edellisen ajon päätyttyä jälkeen
OnUnitInactiveSec=10min
Unit=hello.service


[Timer]
[Install]
# Ensimmäinen ajo 10 minuuttia järjestelmän käynnistyksen jälkeen
WantedBy=default.target
OnBootSec=10min
# Ajetaan uudelleen 10 minuuttia edellisen ajon päätyttyä jälkeen
OnUnitInactiveSec=10min
Unit=hello.service


[Install]
WantedBy=default.target
</source>


Näin luodut uudet yksiköt on sitten tarpeellista kytkeä päälle ja käynnistää:
Näin luodut uudet yksiköt on sitten tarpeellista kytkeä päälle ja käynnistää:
<source>
<pre>
systemctl enable hello.service
systemctl enable hello.service
systemctl enable hello.timer
systemctl enable hello.timer
systemctl start hello.timer
systemctl start hello.timer
</source>
</pre>


Ajastimet voidaan listata <code>systemctl list-timers</code> -komennolla. Esimerkkituloste:
Ajastimet voidaan listata <code>systemctl list-timers</code> -komennolla. Esimerkkituloste:
Rivi 186: Rivi 206:
Pass --all to see loaded but inactive timers, too.
Pass --all to see loaded but inactive timers, too.
</pre>
</pre>
== Verkon hallinta ==
* https://www.freedesktop.org/software/systemd/man/systemd.network.html
* https://www.freedesktop.org/software/systemd/man/systemd.netdev.html - virtuaaliset verkkoliitännät
* <code>networkctl</code>
* <code>systemctl status systemd-networkd</code>
* <code>systemctl status systemd-networkd-wait-online.service</code>
=== Kiinteä IP-osoite ===
<code>/etc/systemd/network/eth0.network</code>:
<pre>
[Match]
# Verkkokortin nimi
Name=eth0
[Network]
Description=eth0:n kiinteä verkko
DHCP=no
Address=192.168.1.11/24
# Gateway IP Address
Gateway=192.168.1.1
# DNS server address
DNS=192.168.1.1
#Domains=home.lan
</pre>
=== DHCP ===
<code>/etc/systemd/network/eth0.network</code>:
<pre>
[Match]
# Verkkokortin nimi
Name=eth0
[Network]
Description=eth0:n verkko DHCP:lla
# DHCP no|yes|ipv4|ipv6
DHCP=ipv4
# DNS server address
#DNS=192.168.101.1
#Domains=home.lan
</pre>
=== Verkkokortin nimen vaihtaminen (.link) ===
Verkkokorttien nimiä voidaan vaihtaa SystemD:n <code>.link</code>-tiedostoilla. Verkkokortin uudelleennimeäminen on hyödyksi silloin, kun esimerkiksi palomuurisääntöjä pitää voida helpommin siirtää järjestelmästä toiseen.
Tässä esimerkissä verkkokortti nimeltä <code>eno1</code> uudelleennimetään <code>phy0</code>-nimiseksi.
Listataan verkkokortit:
<pre>
# ip link
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN mode DEFAULT group default qlen 1000
    link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
2: eno1: <BROADCAST,MULTICAST,PROMISC,UP,LOWER_UP> mtu 1500 qdisc fq_codel state UP mode DEFAULT group default qlen 1000
    link/ether 74:d0:2b:2c:6e:d7 brd ff:ff:ff:ff:ff:ff
</pre>
Luodaan <code>/etc/systemd/network/10-phy0.link</code>:
<pre>
[Match]
# Käytetään MAC-osoitetta tunnistamaan verkkokortti
MACAddress=74:d0:2b:2c:6e:d7
[Link]
# Uusi nimi
Name=phy0
Description=USB-portin vasemmalla puolella oleva ylempi verkkokortti
MACAddressPolicy=persistent
# Käännä verkkokortin rautakiihdytettyjä ominaisuuksia pois päältä (offloading)
# ethtool-ohjelmalla näitä voidaan hallita vielä monipuolisimmin
#TCPSegmentationOffload=off
#TCP6SegmentationOffload=off
#GenericSegmentationOffload=off
#GenericReceiveOffload=off
#LargeReceiveOffload=off
</pre>
Lisätietoa: https://www.freedesktop.org/software/systemd/man/systemd.link.html


== Muita Init-järjestelmiä ==
== Muita Init-järjestelmiä ==
Vaikka Systemd on aika laajasti käytössä, ei se silti ole ainoa init-järjestelmä. Esimerkiksi perinteinen [[Sysvinit]], uudempi [[OpenRC]] tai [https://cr.yp.to/daemontools.html daemontools] ovat tapoja hoitaa järjestelmän käynnistäminen. Helpointa on käyttää Linux-jakelua, josta kyseinen init-järjestelmä löytyy. Esimerkiksi [[Gentoo]] käyttää OpenRC:tä.
Vaikka Systemd on aika laajasti käytössä, ei se silti ole ainoa init-järjestelmä. Esimerkiksi perinteinen [[Sysvinit]], uudempi [[OpenRC]], [[Runit]] tai [https://cr.yp.to/daemontools.html daemontools] ovat tapoja hoitaa järjestelmän käynnistäminen. Helpointa on käyttää Linux-jakelua, josta haluttu init-järjestelmä löytyy. Esimerkiksi [[Gentoo]] käyttää OpenRC:tä ja [[Void Linux]] käyttää Runitia. Sysvinitiä edelleen käyttävät ainakin [[Devuan]] ja [[Slackware]].


==Katso myös==
== Aiheesta Muualla ==
* [[:archwiki:Systemd|Arch Wikin Systemd-artikkeli]]
* [[:archwiki:Systemd|Arch Wikin Systemd-artikkeli]]
* [http://without-systemd.org/wiki/index.php/Main_Page Without-Systemd-wiki], jossa on laajemmin systemd:n vaihtoehtoja käsitelty, lisäksi argumentteja, miksi systemd:tä ei välttämättä kannata käyttää sekä ohjeistuksia systemd:n poistamiseen ja korvaamiseen esim. [[:archwiki:OpenRC|OpenRC:llä. (Arch Wiki)]]
* [http://without-systemd.org/wiki/index.php/Main_Page Without-Systemd-wiki], jossa on laajemmin systemd:n vaihtoehtoja käsitelty, lisäksi argumentteja, miksi systemd:tä ei välttämättä kannata käyttää sekä ohjeistuksia systemd:n poistamiseen ja korvaamiseen esim. [[:archwiki:OpenRC|OpenRC:llä. (Arch Wiki)]]
Noudettu kohteesta ”https://www.linux.fi/wiki/Systemd