Table of Contents
Systemd på openSUSE Linux – Komplet Guide
Baséret på videoen “The Linux Lighthouse” – en guide til systemd på openSUSE Linux, fra grundlæggende kommandoer til avanceret tilpasning.
https://blog.smarken.dk/2026/10/systemd-pa-opensuse-linux-komplet-guide
Se også:
https://www.freedesktop.org/wiki/Software/systemd/
ny site –> https://systemd.io/
Hvad er systemd?
Systemd er Linux' system- og service-manager, som initialiserer og administrerer systemprocesser, efter kernen er indlæst. Den erstatter det gamle SysV-init-system. Systemd er kendt for paralleliseret opstart og on-demand-aktivering af dæmoner, hvilket gør den hurtigere og mere effektiv.
Systemd's vigtigste funktioner:
- Paralleliseret opstart af tjenester
- Socket- og D-Bus-aktivering for on-demand-tjenester
- cgroup-baseret proces-sporing
- Oprettelse af snapshots og systemgendannelse
- Fleksibel afhængighedsstyring
Tjenestestyring med systemctl
Det primære værktøj til at administrere systemd er systemctl. Her er de grundlæggende kommandoer, du får brug for hele tiden (eksemplerne bruger sshd – SSH-tjenesten til sikker fjernlogin).
Oversigt over aktive enheder
systemctl list-units
Viser alle aktuelt aktive enheder med deres status og beskrivelser.
Start og stop af en tjeneste
# Start en tjeneste sudo systemctl start sshd # Stop en tjeneste sudo systemctl stop sshd
Tjek status
systemctl status sshd
Giver detaljeret information om tjenestens aktuelle tilstand, inklusive fejl.
Genstart og genindlæs
# Genstart en tjeneste sudo systemctl restart sshd # Genindlæs konfiguration uden afbrydelse sudo systemctl reload sshd
Start automatisk ved boot (enable/disable)
# Start automatisk ved boot sudo systemctl enable sshd # Undgå start ved boot sudo systemctl disable sshd # Tjek om tjenesten er enabled systemctl is-enabled sshd
Targets
I systemd erstatter targets det gamle runlevel-koncept med mere fleksible opstartssekvenser.
| Target | Beskrivelse | Runlevel-ækvivalent |
|---|---|---|
graphical.target | Multi-user med netværk og grafisk interface | Runlevel 5 |
multi-user.target | Multi-user med netværk | Runlevel 3 |
rescue.target | Enkeltbrugertilstand til systemgendannelse | – |
Vis og sæt default target
# Vis nuværende default target systemctl get-default # Sæt nyt default target (kræver sudo) sudo systemctl set-default graphical.target # eller multi-user.target / rescue.target
Efter en reboot starter systemet i det target, du lige har sat.
Skift target med det samme
sudo systemctl isolate multi-user.target
Skifter straks systemet til det valgte target (f.eks. multi-user eller rescue).
Enheder (units) og egne unit-filer
Systemd-enheder defineres af unit-filer, som ligger i:
/usr/lib/systemd/system– standard-enheder/etc/systemd/system– egne/tilpassede konfigurationer
Sådan opretter du en tilpasset unit-fil (eksempel med sshd.service):
# 1. Kopiér en standard-unit-fil til /etc/systemd/system sudo cp /usr/lib/systemd/system/sshd.service /etc/systemd/system # 2. Redigér filen efter behov # 3. Genindlæs systemd sudo systemctl daemon-reload # 4. Start/enable din tilpassede tjeneste sudo systemctl start sshd
Oversigt og fejlfinding
Vis alle indlæste unit-filer
systemctl list-unit-files --type=service
Vis kun feilede tjenester
systemctl --failed
Analysér opstartstider
# Tjenester sorteret efter opstartstid systemd-analyze blame # Grafisk rapport som PNG systemd-analyze plot > startup.png
blame viser tjenester sorteret efter opstartstid; plot genererer et PNG-diagram med en visuel opdeling af opstartstiderne.
Snapshots – et forbehold
Den officielle openSUSE-reference- og administrationsguide beskriver systemd-snapshots: sudo systemctl snapshot <navn>.snapshot, som gemmer systemets aktuelle tilstand og muliggør nem gendannelse (oprettelse, sletning, liste og isolate).
Bemærk: Denne funktionalitet virker ikke i praksis.systemctl snapshotogsystemctl list-snapshotsfindes ikke længere – sandsynligvis er funktionen fjernet fra systemd til fordel for Snapper. Funksjonen er dog stadig omtalt i den officielle manual. Videens skaber efterlyser information, hvis nogen kender nærmere detaljer.
Timer-units (jobscheduling)
Systemd-timer-units bruges til jobplanlægning ligesom cron, men med flere fordele:
- Jobs kan afhænge af andre systemd-tjenester
- Timers håndteres som almindelige systemd-tjenester via
systemctl - Timers kan være real-time (kalenderbaserede) eller monotonic (relative)
- Timers logges i systemd-journalen, hvilket gør overvågning og fejlfinding lettere
Opret en service-fil
Opret filen /etc/systemd/system/mytask.service (navnet skal slutte på .service):
[Unit] Description=My scheduled task [Service] ExecStart=/usr/local/bin/mytask.sh
Opret en timer-fil
Opret filen /etc/systemd/system/mytask.timer:
[Unit] Description=Run my task every hour [Timer] OnCalendar=hourly Persistent=true [Install] WantedBy=timers.target
Aktivér og start timeren
sudo systemctl enable mytask.timer sudo systemctl start mytask.timer # Tjek at timeren er aktiv systemctl list-timers
Tip: Hvis timeren fejler med “bad unit file setting”, så tjek statussen medsystemctl status mytask.timer– ofte er det en tastefejl i unit-filen (f.eks. en forkert nøgle).
Temp-files (tmpfiles.d)
Systemd understøtter regelmæssig oprydning i midlertidige mapper via tmpfiles.d, som læser sin konfiguration fra (i prioriteret rækkefølge):
/etc/tmpfiles.d– egne indstillinger (overtrumfer de andre)/run/tmpfiles.d/usr/lib/tmpfiles.d– pakkenes standardkonfiguration
Konfigurationsformatet er én linje pr. post: type, path, action samt evt. mode, ownership, age og argument-felter.
Eksempel: automatisk oprydning i /tmp
Opret filen /etc/tmpfiles.d/cleanup.conf:
sudo vi /etc/tmpfiles.d/cleanup.conf
Med følgende indhold (sletter filer ældre end 10 dage i /tmp):
d /tmp 1777 root root 10d
Tjek derefter timeren, der håndterer oprydningen:
systemctl status systemd-tmpfiles-clean.timer
Tip: Der findes mange parameterkombinationer til forskellige use cases – læs manualen (man tmpfiles.d) for en fuld forklaring.
Logstyring med journalctl
journalctl giver adgang til at forespørge logbeskeder:
# Vis alle logs for en bestemt tjeneste sudo journalctl -u sshd # Følg logs i real time sudo journalctl -u sshd -f # Begræns antal viste linjer sudo journalctl -n 50
-f er praktisk til realtids-overvågning (f.eks. mens du logger ind via SSH på en anden maskine) – afslut med Ctrl+C.
Opsummering
Denne guide har dækket:
- Grundlæggende
systemctl-kommandoer (start, stop, status, genstart, genindlæs, enable/disable) - Targets og hvordan du skifter mellem dem
- Oprettelse af egne unit-filer
- Fejlfinding og opstartsanalyse (
–failed,systemd-analyze) - Timer-units som cron-alternativ
- Oprydning af midlertidige filer med tmpfiles.d
- Loganalyse med
journalctl
