server_und_serverdienste:systemd
Unterschiede
Hier werden die Unterschiede zwischen zwei Versionen der Seite angezeigt.
Beide Seiten, vorherige ÜberarbeitungVorherige ÜberarbeitungNächste Überarbeitung | Vorherige Überarbeitung | ||
server_und_serverdienste:systemd [2021/03/04 14:42] – lois | server_und_serverdienste:systemd [2025/05/18 08:19] (aktuell) – loma | ||
---|---|---|---|
Zeile 1: | Zeile 1: | ||
====== Systemd ====== | ====== Systemd ====== | ||
- | + | Du möchtest dich gerne für unsere Hilfe erkenntlich zeigen 8-o. Gerne. Wir bedanken uns bei dir für deine Spende! 🙏 \\ | |
- | Hauseigenes Apt-Repo: [[https:// | + | [[https:// |
+ | \\ | ||
+ | Zum frei verfügbaren [[: | ||
+ | \\ | ||
+ | GITLAB: [[https:// | ||
\\ | \\ | ||
\\ | \\ | ||
Zeile 7: | Zeile 11: | ||
systemctl edit --full rc-local | systemctl edit --full rc-local | ||
+ | |||
+ | Um den Defaulteditor VI von SystemD zu überschreiben bedient man sich diesem Befehl: | ||
+ | EDITOR=nano systemctl edit --full rc-local | ||
+ | |||
+ | Hier wird das komplette Service kopiert und wird von Updates des Systems nicht weiterhin berührt. Dies kann je, nachdem zu irgendwann auch zu Problemen führen. Deshalb gibt es auch eine andere Variante wo die Files virtuell verschmolzen werden: | ||
+ | EDITOR=nano systemctl edit apache2 | ||
Oder wenn es ein komplett neues Unitfile ist: | Oder wenn es ein komplett neues Unitfile ist: | ||
Zeile 31: | Zeile 41: | ||
===== Timeout beim Beenden eines Services ===== | ===== Timeout beim Beenden eines Services ===== | ||
- | Sehr nützlich wenn durch z.B. nicht mehr erreichen von Services wie NB's - WLAN Dienste ihr maximales Timeout erreichen würden. | + | Sehr nützlich, wenn durch z.B. nicht mehr erreichen von Services wie NB's - WLAN Dienste ihr maximales Timeout erreichen würden. |
| | ||
[Unit] | [Unit] | ||
Zeile 61: | Zeile 71: | ||
===== Systemdservices über Remote ausführen ===== | ===== Systemdservices über Remote ausführen ===== | ||
- | Mit Systemd ist es sehr bequem möglich Dinge zu organisieren ohne das man direkt am Host ist. z.b. | + | Mit Systemd ist es sehr bequem möglich Dinge zu organisieren, ohne das man direkt am Host ist. z.b. |
< | < | ||
systemctl -H root@myhost.supertux.bla status apache2 | systemctl -H root@myhost.supertux.bla status apache2 | ||
Zeile 73: | Zeile 83: | ||
===== Mounten mit Systemd - FSTAB ruhe in Frieden ===== | ===== Mounten mit Systemd - FSTAB ruhe in Frieden ===== | ||
+ | |||
+ | ==== Systemd Mount mit NFS ==== | ||
__Testsystem: | __Testsystem: | ||
Zeile 80: | Zeile 92: | ||
Hier als Beispiel ein einfacher Mount einer lokalen HDD. Als erstes legst du ein sogenanntes Unit-File an. Der Mountpoint wird dabei automatisch erstellt. | Hier als Beispiel ein einfacher Mount einer lokalen HDD. Als erstes legst du ein sogenanntes Unit-File an. Der Mountpoint wird dabei automatisch erstellt. | ||
systemctl edit -f -l "/ | systemctl edit -f -l "/ | ||
- | Wie du siehst muss der Name der exakte Mountpoint sein. Nun befüllst du das File mit diesem Inhalt: | + | |
+ | Um den Defaulteditor VI von SystemD zu überschreiben bedient man sich diesem Befehl: | ||
+ | EDITOR=nano systemctl edit -f -l "/ | ||
+ | |||
+ | Wie du siehst, muss der Name der exakte Mountpoint sein. Nun befüllst du das File mit diesem Inhalt: | ||
< | < | ||
[Install] | [Install] | ||
Zeile 94: | Zeile 110: | ||
Where=/ | Where=/ | ||
</ | </ | ||
- | Mit dem nächsten Befehl hast eine tolle Übersicht für alle Mountpoints die es gibt, und ob diese im Autostart sind oder nicht. | + | Und NFS4: |
+ | < | ||
+ | [Install] | ||
+ | WantedBy=multi-user.target | ||
+ | |||
+ | [Unit] | ||
+ | Description=Mount datatstore under / | ||
+ | Requires=network.target | ||
+ | Requires=NetworkManager.service | ||
+ | Requires=network-online.target | ||
+ | |||
+ | [Mount] | ||
+ | Options=rw, | ||
+ | Type=nfs4 | ||
+ | What=myhostserver.lan:/ | ||
+ | Where=/ | ||
+ | # TimeoutSec=60 | ||
+ | </ | ||
+ | |||
+ | |||
+ | Mit dem nächsten Befehl hast eine tolle Übersicht für alle Mountpoints, die es gibt, und ob diese im Autostart sind oder nicht. | ||
systemctl list-unit-files -t mount | systemctl list-unit-files -t mount | ||
< | < | ||
Zeile 133: | Zeile 169: | ||
oder auch: | oder auch: | ||
systemctl edit -l "/ | systemctl edit -l "/ | ||
+ | |||
+ | ==== Systemd Mount mit Samba ==== | ||
+ | |||
+ | __Testsystem: | ||
+ | |||
+ | Dies gestaltet sich sehr ähnlich wie NFS. Lediglich ein Paket und die Authentifizierung kommt dazu. | ||
+ | apt install cifs-utils -dy | ||
+ | Danach erstellen wir unser Unitfile, und aktivieren es: | ||
+ | EDITOR=nano systemctl edit -f -l "/ | ||
+ | |||
+ | < | ||
+ | [Unit] | ||
+ | Description=samba mount for sambafiles | ||
+ | Requires=systemd-networkd.service | ||
+ | After=network-online.target | ||
+ | Wants=network-online.target | ||
+ | |||
+ | [Mount] | ||
+ | What=// | ||
+ | Where=/ | ||
+ | Options=credentials=/ | ||
+ | Type=cifs | ||
+ | TimeoutSec=30 | ||
+ | |||
+ | [Install] | ||
+ | WantedBy=multi-user.target | ||
+ | </ | ||
+ | Nun noch SystemD reloaden und den Mount aktivieren: | ||
+ | < | ||
+ | systemctl daemon-reload | ||
+ | systemctl enable " | ||
+ | </ | ||
+ | Nun kann das Systemd-Service getartet werden, und somit wird auch das Laufwerk eingehängt. | ||
+ | systemctl start " | ||
Für die Erweiterung deines Unitfiles empfehle ich [[https:// | Für die Erweiterung deines Unitfiles empfehle ich [[https:// | ||
+ | |||
+ | ===== Systemd Autostart ===== | ||
+ | Hier ein Beispiel für ein WOL Script das beim Boot ausgeführt wird, aber erst wenn der Server online ist. | ||
+ | systemctl edit -f -l wol-at-boot.service | ||
+ | Inhalt: | ||
+ | < | ||
+ | [Unit] | ||
+ | Description=execute Wake-up on LAN | ||
+ | |||
+ | Wants=network.target | ||
+ | After=syslog.target network-online.target | ||
+ | |||
+ | [Service] | ||
+ | Type=oneshot | ||
+ | ExecStart=/ | ||
+ | |||
+ | [Install] | ||
+ | WantedBy=multi-user.target | ||
+ | </ | ||
+ | systemctl enable wol-at-boot.service | ||
+ | systemctl daemon-reload | ||
+ | |||
+ | ===== Optional: Abhängigkeit Netzwerk ===== | ||
+ | Gerade beim Mount von Laufwerken kommt immer wieder mal das Thema, auf das beim Zeitpunkt des Mounts das Ziel noch nicht erreichbar ist. Manchmal hilft da auch kein " | ||
+ | |||
+ | EDITOR=nano systemctl edit -f -l wait-for-ping.service | ||
+ | |||
+ | Mit dem folgenden Inhalt (Zieladresse muss angepasst werden): | ||
+ | < | ||
+ | [Unit] | ||
+ | Description=Blocks until it successfully pings virtu01 | ||
+ | After=network-online.target | ||
+ | |||
+ | [Service] | ||
+ | ExecStartPre=/ | ||
+ | ExecStart=/ | ||
+ | RemainAfterExit=yes | ||
+ | |||
+ | [Install] | ||
+ | WantedBy=multi-user.target | ||
+ | </ | ||
+ | |||
+ | Speicher und aktivieren: | ||
+ | systemctl enable --now wait-for-ping.service | ||
+ | |||
+ | Dieses Service fügt man jetzt als Abhängigkeit im Systemd-Mount hinzu. Z.B. | ||
+ | < | ||
+ | [Install] | ||
+ | WantedBy=multi-user.target | ||
+ | |||
+ | [Unit] | ||
+ | Description=Mount datatstore under / | ||
+ | Requires=network.target | ||
+ | Requires=NetworkManager.service | ||
+ | Requires=network-online.target | ||
+ | After=wait-for-ping.service | ||
+ | |||
+ | [Mount] | ||
+ | Options=rw, | ||
+ | Type=nfs4 | ||
+ | What=myhostserver.lan:/ | ||
+ | Where=/ | ||
+ | # TimeoutSec=60 | ||
+ | </ | ||
+ | Wichtig ist hier der Part " | ||
+ | |||
===== Debuging ===== | ===== Debuging ===== | ||
Um z.B. Zeiten beim Systemstart ansehen zu können gibt es zwei nette Befehle: | Um z.B. Zeiten beim Systemstart ansehen zu können gibt es zwei nette Befehle: | ||
Zeile 151: | Zeile 287: | ||
* [[https:// | * [[https:// | ||
+ | * [[https:// | ||
* https:// | * https:// | ||
* https:// | * https:// |
server_und_serverdienste/systemd.1614868951.txt.gz · Zuletzt geändert: von lois