systemd
Unterschiede
Hier werden die Unterschiede zwischen zwei Versionen angezeigt.
| Beide Seiten der vorigen RevisionVorhergehende ÜberarbeitungNächste Überarbeitung | Vorhergehende Überarbeitung | ||
| systemd [2023-05-16 13:34:34] – [systemd-resolved] manfred | systemd [2024-11-20 22:47:46] (aktuell) – [config] david | ||
|---|---|---|---|
| Zeile 1: | Zeile 1: | ||
| + | ====== Systemd ====== | ||
| + | |||
| + | Der //Systemd// ist eine [[SysVinit]]-Alternative. | ||
| + | |||
| + | |||
| + | ===== SysVinit- und Upstart-Alternative Systemd vorgestellt ===== | ||
| + | |||
| + | * [[https:// | ||
| + | |||
| + | In dem sehr ausführlichen Blog-Eintrag erläutert Poettering Probleme aktueller Init-Systeme und erklärt, wie das noch sehr experimentelle und bislang lediglich via Git erhältliche Systemd es besser machen will. Damit der Systemstart möglichst schnell erfolge, dürfe das Init-System nur das unbedingt Nötigste ausführen und müsse so viele Aufgaben wie möglich parallel erledigen, um die Ressourcen effizient zu nutzen. Dienste sollten zudem erst starten, wenn sie benötigt werden – ähnlich wie beim (x)inetd, das Server-Dienste wie SSH, Telnet oder Webmin automatisch startet, wenn auf einem bestimmten Port zugriffen wird. Auch seien die vielen beim Start aktueller Linux-Distributionen ausgeführten Shell-Skripte ein Problem, denn die seien vergleichsweise langsam. Poettering erläutert ferner, warum ihm der Ansatz des derzeit von Fedora, OpenSuse und Ubuntu eingesetzte Upstart nicht gefällt; mehrfach positiv erwähnt er hingegen einige Eigenschaften des bei MacOS eingesetzten launchd. | ||
| + | |||
| + | ... | ||
| + | |||
| + | Der bei Red Hat beschäftigte Poettering stellt in der FAQ am Ende der Ankündigung klar, dass Systemd sein Freizeitprojekt sei. Er hat sich aber mit Entwicklern verschiedener Firmen abgesprochen – darunter auch dem bei Novell beschäftigten Kay Sievers, der durch seine Arbeit als Udev-Maintainer bekannt ist. Poettering und Sievers scheinen auf eine Aufnahme in Fedora und OpenSuse hinarbeiten zu wollen, wenn weitere Experimente mit Systemd zeigen, dass das Konzept tragfähig ist. | ||
| + | |||
| + | ... | ||
| + | |||
| + | Der Hauptentwickler von [[Upstart]], | ||
| + | |||
| + | |||
| + | ===== Allgemeines ===== | ||
| + | |||
| + | [[https:// | ||
| + | |||
| + | Hier liegen die Unit-Dateien des systemd: ''/ | ||
| + | |||
| + | Oft liegen in etc die Symlinks und hier die richtigen Unit-Dateien: | ||
| + | |||
| + | Auflisten von Services: '' | ||
| + | |||
| + | |||
| + | ==== Systemd Unit Types ==== | ||
| + | |||
| + | * ***.service** | ||
| + | * ***.socket** | ||
| + | * ***.mount** | ||
| + | * ***.target** | ||
| + | * und viele andere | ||
| + | |||
| + | |||
| + | ===== NameServer hinzufühgen ===== | ||
| + | |||
| + | > systemd-resolve --set-dns=192.168.1.1 --set-domain=lan --interface=eth0 | ||
| + | > systemd-resolve --status | ||
| + | ... | ||
| + | | ||
| + | Link 2 (eth0) | ||
| + | Current Scopes: DNS | ||
| + | LLMNR setting: yes | ||
| + | MulticastDNS setting: no | ||
| + | DNSSEC setting: no | ||
| + | DNSSEC supported: no | ||
| + | DNS Servers: 192.168.1.1 | ||
| + | DNS Domain: lan | ||
| + | |||
| + | |||
| + | ===== Systemd Service Unit File ===== | ||
| + | |||
| + | * [[https:// | ||
| + | * [[https:// | ||
| + | |||
| + | <code bash / | ||
| + | [Unit] | ||
| + | Description=myservice | ||
| + | After=network.target auditd.service sshd.service | ||
| + | |||
| + | [Service] | ||
| + | ### startet und läuft dauerhaft weiter ohne zu forken | ||
| + | Type=simple | ||
| + | ### forkt - erzeugt weiter Prozesse (z.B. einige Webserver) | ||
| + | # | ||
| + | ### startet und arbeitet einen Auftrag ab, danach beendet es sich | ||
| + | # | ||
| + | WorkingDirectory=/ | ||
| + | EnvironmentFile=-/ | ||
| + | ExecStartPre=/ | ||
| + | ExecStart=/ | ||
| + | ExecStartPost=/ | ||
| + | |||
| + | [Install] | ||
| + | WantedBy=default.target | ||
| + | Alias=myservice.service | ||
| + | </ | ||
| + | |||
| + | Anschliessend muss Systemd die Services neu einlesen: | ||
| + | > systemctl daemon-reload | ||
| + | |||
| + | Nun kann der Service gestartet werden: | ||
| + | > systemctl start myservice | ||
| + | |||
| + | Natürlich kann man den Service auch beim Booten automatisch starten lassen: | ||
| + | > systemctl enable myservice | ||
| + | > systemctl is-enabled myservice | ||
| + | enabled | ||
| + | |||
| + | |||
| + | ==== Beispielservice für Wake on LAN ==== | ||
| + | |||
| + | [[https:// | ||
| + | |||
| + | <code ini / | ||
| + | [Unit] | ||
| + | Description=Wake on LAN | ||
| + | After=network.target | ||
| + | |||
| + | [Service] | ||
| + | Type=simple | ||
| + | ExecStart=/ | ||
| + | Restart=on-failure | ||
| + | |||
| + | [Install] | ||
| + | WantedBy=multi-user.target | ||
| + | </ | ||
| + | |||
| + | $ systemctl enable wol | ||
| + | $ systemctl start wol | ||
| + | |||
| + | |||
| + | ===== systemd-networkd ===== | ||
| + | |||
| + | ==== config ==== | ||
| + | |||
| + | === auto (DHCP & RA) === | ||
| + | |||
| + | DNS Server und Search Domains werden in dieser Konfiguration nur von DHCPv4 & RA bezogen, nicht von DHCPv6 | ||
| + | |||
| + | <code ini / | ||
| + | # systemctl --version -> systemd 252 | ||
| + | [Match] | ||
| + | Name=eth0 end0 enp0s* | ||
| + | |||
| + | [Network] | ||
| + | DHCP=true | ||
| + | IPv6LinkLocalAddressGenerationMode=stable-privacy | ||
| + | LLMNR=false | ||
| + | MulticastDNS=true | ||
| + | DNSOverTLS=opportunistic | ||
| + | DNSSEC=allow-downgrade | ||
| + | IPv6PrivacyExtensions=true | ||
| + | IPv6AcceptRA=true | ||
| + | |||
| + | [Route] | ||
| + | Gateway=_dhcp4 | ||
| + | Gateway=_ipv6ra | ||
| + | |||
| + | [DHCPv4] | ||
| + | UseDNS=true | ||
| + | UseDomains=true | ||
| + | |||
| + | [DHCPv6] | ||
| + | RapidCommit=true | ||
| + | UseDNS=false | ||
| + | UseDomains=false | ||
| + | |||
| + | [IPv6AcceptRA] | ||
| + | # eui64 | ||
| + | # | ||
| + | # rfc7217 | ||
| + | Token=prefixstable | ||
| + | UseDNS=true | ||
| + | UseDomains=true | ||
| + | </ | ||
| + | |||
| + | === manual === | ||
| + | |||
| + | <code ini / | ||
| + | # systemctl --version -> systemd 252 | ||
| + | [Match] | ||
| + | Name=eth0 | ||
| + | |||
| + | [Network] | ||
| + | DHCP=true | ||
| + | IPv6LinkLocalAddressGenerationMode=stable-privacy | ||
| + | LLMNR=false | ||
| + | MulticastDNS=true | ||
| + | DNSOverTLS=opportunistic | ||
| + | DNSSEC=allow-downgrade | ||
| + | IPv6PrivacyExtensions=false | ||
| + | IPv6AcceptRA=true | ||
| + | DNS=::1 | ||
| + | DNS=127.0.0.1 | ||
| + | |||
| + | [Address] | ||
| + | Address=10.0.0.10/ | ||
| + | |||
| + | [Address] | ||
| + | Address=fd00:: | ||
| + | |||
| + | [Route] | ||
| + | Gateway=10.0.0.1/ | ||
| + | Gateway=fd00:: | ||
| + | |||
| + | [DHCPv4] | ||
| + | UseDNS=false | ||
| + | UseDomains=false | ||
| + | |||
| + | [DHCPv6] | ||
| + | RapidCommit=true | ||
| + | UseDNS=false | ||
| + | UseDomains=false | ||
| + | |||
| + | [IPv6AcceptRA] | ||
| + | # eui64 | ||
| + | # | ||
| + | # rfc7217 | ||
| + | Token=prefixstable | ||
| + | UseDNS=false | ||
| + | UseDomains=false | ||
| + | </ | ||
| + | |||
| + | ==== commands ==== | ||
| + | |||
| + | > networkctl list | ||
| + | > networkctl status | ||
| + | > networkctl renew eth0 | ||
| + | > networkctl forcerenew eth0 | ||
| + | |||
| + | ===== systemd-resolved ===== | ||
| + | |||
| + | ==== config ==== | ||
| + | |||
| + | <code ini / | ||
| + | [Resolve] | ||
| + | # | ||
| + | # | ||
| + | #Domains= | ||
| + | DNSSEC=allow-downgrade | ||
| + | DNSOverTLS=opportunistic | ||
| + | MulticastDNS=true | ||
| + | LLMNR=false | ||
| + | Cache=no-negative | ||
| + | # | ||
| + | # | ||
| + | # | ||
| + | # | ||
| + | # | ||
| + | </ | ||
| + | |||
| + | |||
| + | === mDNS Zuständigkeit === | ||
| + | |||
| + | * systemd-resolved: | ||
| + | * avahi-daemon: | ||
| + | |||
| + | **Beide** Einstellungen für mDNS müssen aktiviert werden: systemd-resolved (global) und systemd-networkd (pro verbindung). | ||
| + | |||
| + | Wenn NetworkManager statt systemd-networkd zum Einsatz kommt, muss mDNS in der jeweiligen Konfiguration aktiviert werden (siehe [[:: | ||
| + | |||
| + | Überprüfen: | ||
| + | |||
| + | |||
| + | ==== modes ==== | ||
| + | |||
| + | siehe [[https:// | ||
| + | |||
| + | * '' | ||
| + | * '' | ||
| + | * '' | ||
| + | * extern verwaltete ''/ | ||
| + | |||
| + | **stub** und **uplink** mode sind die beiden die am meisten Sinn ergeben, wobei 1. ein stub resolver nutzt (127.0.0.53) und 2. einer normalen resolv.conf ähnelt | ||
| + | |||
| + | ==== commands ==== | ||
| + | |||
| + | Alt (SystemD Version 247): | ||
| + | > systemd-resolve --status | ||
| + | |||
| + | Neu (SystemD Version 249): | ||
| + | > resolvectl status | ||
| + | > resolvectl dns | ||
| + | > resolvectl domain | ||
| + | > resolvectl default-route | ||
| + | |||
| + | DNS-Cache abschalten: | ||
| + | > resolvectl flush-caches | ||
| + | | ||
| + | > vi / | ||
| + | ... | ||
| + | Cache=no | ||
| + | ... | ||
