Ero sivun ”Systemd” versioiden välillä
Siirry navigaatioon
Siirry hakuun
p Paranneltu ulkoasua. |
|||
| (6 välissä olevaa versiota 4 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 10: | Rivi 31: | ||
== Yksiköt == | == Yksiköt == | ||
Tavallisimmin systemd:n tarjoamia työkaluja käytetään palveluiden, kuten [[ | 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 <tt>.service</tt>-merkkijonoon, kun taas esimerkiksi tiedostojärjestelmien liitospisteitä vastaavien yksiköiden nimien lopussa on aina <tt>.mount</tt>. | Erityyppiset yksiköt erottaa toisistaan helposti nimen loppuosan perusteella. Palvelut päättyvät aina <tt>.service</tt>-merkkijonoon, kun taas esimerkiksi tiedostojärjestelmien liitospisteitä vastaavien yksiköiden nimien lopussa on aina <tt>.mount</tt>. | ||
| 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: | ||
[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 | |||
[ | [Install] | ||
WantedBy=default.target | |||
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ää: | ||
< | <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 | ||
</ | </pre> | ||
Ajastimet voidaan listata <code>systemctl list-timers</code> -komennolla. Esimerkkituloste: | Ajastimet voidaan listata <code>systemctl list-timers</code> -komennolla. Esimerkkituloste: | ||
| Rivi 187: | Rivi 207: | ||
</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ä == | |||
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]]. | |||
== | == 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)]] | ||
[[Luokka: Järjestelmä]] | [[Luokka: Järjestelmä]] | ||
{{Malline:Palvelin}} | |||