Eine Einführung - Teil 8
Deutsche Angestellten Akademie
Ein Systemdienst der automatisch startet und ohne Eingriffe arbeitet ( meistens :-) )
vgl. Dienste unter Windows
Name endet oft mit „d“
Begriff: Runlevel
Runlevel | Beschreibung |
---|---|
0 | Shutdown. Alle Netzverbindungen werden geschlossen, Dateipuffer werden geschrieben, Mounts auf Partitionen werden entfernt (d. h. die im Verzeichnisbaum eingebundenen Datenträger werden ausgehängt). |
S | Single-User-Runlevel; niedrigster Systemzustand für Wartungsarbeiten, in dem ausschließlich Systemressourcen wie Festplatten oder Dateisysteme aktiv sind. |
1 | Einzelnutzerbetrieb ohne Netzwerk mit ausschließlich lokalen Ressourcen. In vielen Implementierungen identisch mit 'S'. |
2 | Lokaler Mehrnutzerbetrieb ohne Netzwerk mit ausschließlich lokalen Ressourcen. Unter einigen Linuxdistributionen (z. B. Debian) wird in Runlevel 2 auch das Netzwerk konfiguriert. |
3 | Netzwerkbetrieb, über das Netzwerk erreichbare Ressourcen sind nutzbar, eine grafische Oberfläche steht nicht zur Verfügung. Firewalls sollten aktiviert werden. |
4 | Ist normalerweise nicht definiert. Kann aber für diverse Dienste genutzt werden. |
5 | Wie 3, zusätzlich wird die grafische Oberfläche bereitgestellt. |
6 | Reboot. Alle Netzverbindungen werden geschlossen, Dateipuffer werden geschrieben, Mounts auf Partitionen werden entfernt. |
Das initramfs ist ein komprimiertes Archiv, das für den Systemstart benötigte Dateien enthält.
systemd ist organisiert mit
/lib/systemd/system/ -> default
/etc/systemd/system/ -> custom
systemctl status
systemctl --failed
systemctl list-unit-files
systemctl get-default
systemctl list-units --type target
SysV Runlevel | systemd Target | Notes |
---|---|---|
0 | runlevel0.target, poweroff.target | Halt the system. |
1, s, single | runlevel1.target, rescue.target | Single user mode. |
2, 4 | runlevel2.target, runlevel4.target, multi-user.target | User-defined/Site-specific runlevels. By default, identical to 3. |
3 | runlevel3.target, multi-user.target | Multi-user, non-graphical. Users can usually login via multiple consoles or via the network. |
5 | runlevel5.target, graphical.target | Multi-user, graphical. Usually has all the services of runlevel 3 plus a graphical login. |
6 | runlevel6.target, reboot.target | Reboot |
emergency | emergency.target | Emergency shell |
systemctl
systemctl start DIENST
systemctl restart DIENST
systemctl status DIENST
systemctl enable DIENST
systemctl enable --now DIENST
systemctl disable DIENST
/lib/systemd/system/ssh.service
[Unit]
Description=OpenBSD Secure Shell server
After=network.target auditd.service
ConditionPathExists=!/etc/ssh/sshd_not_to_be_run
[Service]
EnvironmentFile=-/etc/default/ssh
ExecStartPre=/usr/sbin/sshd -t
ExecStart=/usr/sbin/sshd -D $SSHD_OPTS
ExecReload=/usr/sbin/sshd -t
ExecReload=/bin/kill -HUP $MAINPID
KillMode=process
Restart=on-failure
RestartPreventExitStatus=255
Type=notify
RuntimeDirectory=sshd
RuntimeDirectoryMode=0755
[Install]
WantedBy=multi-user.target
Alias=sshd.service
https://wiki.archlinux.org/index.php/Systemd#Writing_unit_files
/etc/systemd/system/simple-webserver.service
[Unit]
Description=Simple Web Server
[Service]
Type=simple
ExecStart=/home/USERNAME-HIER-EINSETZEN/hello-web.sh
[Install]
WantedBy=multi-user.target
~/hello-web.sh
#!/bin/bash
cd /home/
python3 -m http.server 8082
systemctl start simple-webserver.service
systemctl status simple-webserver.service
Wenn das gescheitert sein sollte:
journalctl -xe
journalctl --unit=simple-webserver.service
http://localhost:8082/BENUTZERNAME
systemctl edit unit
/etc/systemd/system/unit.d/override.conf
systemctl daemon-reload
systemctl revert unit
systemctl list-timers --all
toller-dienst.service
toller-dienst.timer
/etc/systemd/system/backup.timer
[Unit]
Description=Run backup.sh weekly
[Timer]
OnCalendar=weekly
Persistent=true
[Install]
WantedBy=timers.target
/etc/systemd/system/backup.service
[Unit]
Description=Backup 2000
[Service]
Type=simple
ExecStart=/home/USERNAME-HIER-EINSETZEN/bin/backup.sh
[Install]
WantedBy=multi-user.target
~/bin/backup.sh
#!/bin/bash
tar -czf "/home/USERNAME/archiv/backup-`date +%d-%m-%Y`.tar.gz" /home/USERNAME/arbeit/
journalctl
journalctl -xe
journalctl --unit=backup.service
https://wiki.ubuntuusers.de/Systemzeit/
https://access.redhat.com/documentation/en-us/red_hat_enterprise_linux/7/html/system_administrators_guide/sect-managing_services_with_systemd-targets