smarken blog

Digital Sovrignty, Privacy, EU Law & Legislation, IT, Linux

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.


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 snapshot og systemctl list-snapshots findes 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 med systemctl 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):

  1. /etc/tmpfiles.d – egne indstillinger (overtrumfer de andre)
  2. /run/tmpfiles.d
  3. /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

https://invidious.nerdvpn.de/watch?v=yGVdI0C_2Ro https://www.youtube.com/watch?v=yGVdI0C_2Ro

The Linux Lighthouse, your guide to Linux

Welcome to The Linux Lighthouse, Your openSUSE Linux Guide! In this video, we'll dive deep into systemd, the core of system and service management on Linux. If you're using openSUSE Linux, this guide is for you! We'll cover everything you need to know about systemd-from basic commands for managing services to advanced customizations with unit files, snapshots, and timers. Learn how to control your system's startup, schedule jobs like a pro with systemd timers, and debug services using journalctl. With clear examples and step-by-step instructions, this is your ultimate guide to mastering systemd on openSUSE Leap!

What You'll Learn:

Understanding systemd and its advantages
Essential systemctl commands for managing services
Switching and configuring targets (runlevels)
Customizing systemd with unit files
Creating system snapshots for safe rollbacks (deprecated)
Scheduling tasks with systemd timers
Managing temporary directories and cleaning them automatically
Monitoring logs and debugging with journalctl

Whether you're a beginner or a sysadmin, this video will give you the tools to take control of your openSUSE Linux system. Don't forget to like, subscribe, and hit the bell icon to get notified about new Linux tutorials!

🔗 Resources:

Official systemd Documentation: https://www.freedesktop.org/wiki/Soft...


openSUSE Reference Manual: Official systemd Documentation: https://www.freedesktop.org/wiki/Soft...

Online Shop US - https://the-linux-lighthouse.myspread... Online Shop EU - https://the-linux-lighthouse.myspread... Buy Me a coffee ☕️: https://buymeacoffee.com/thelinuxligh...

Linux #systemd #openSUSE #LinuxTutorial #openSUSELeap #opensusetumbleweed #SystemManagement #LinuxForBeginners #LinuxAdministration #TechTutorial #LinuxCommands #openSUSELinux #ITTraining #LearnLinux #linuxtutorial #tech

AI-genereret videooversigt AI kan begå fejl, så sørg for at dobbelttjekke dens svar.

The Linux Lighthouse explores systemd, the Linux initialization and service manager. The guide details how to use systemctl for process management, configure custom unit files, schedule tasks with timers, automate temporary file cleanup, and monitor logs using journalctl on openSUSE.