Linux.systemd: Unterschied zwischen den Versionen
Zur Navigation springen
Zur Suche springen
Root (Diskussion | Beiträge) Keine Bearbeitungszusammenfassung |
Root (Diskussion | Beiträge) |
||
Zeile 13: | Zeile 13: | ||
== Dokumentation == | == Dokumentation == | ||
* https://www.freedesktop.org/wiki/Software/systemd/ | |||
* http://0pointer.de/blog/projects/security.html | * http://0pointer.de/blog/projects/security.html | ||
* http://fedoraproject.org/wiki/How_to_debug_Systemd_problems | * http://fedoraproject.org/wiki/How_to_debug_Systemd_problems |
Version vom 30. September 2016, 14:54 Uhr
"systemd" ist ein Linux-Programm das den ganzen Boot- und Start-Prozess des Linux-Betriebssystem durchführt. Wenn man Server-Dienste betreibt kommt man systemd in Berührung. Zu startende Dienste sind von anderen abhängig so dass dieser Boot-Prozess nicht ganz einfach ist.
Bedienung
- starten: systemctl start <dienst>
- Info ob er läuft, und Diagsnose: systemctl status <dienst>
- stoppen: systemctl start <dienst>
- Stop+Start: systemctl restart <dienst>
Dokumentation
- https://www.freedesktop.org/wiki/Software/systemd/
- http://0pointer.de/blog/projects/security.html
- http://fedoraproject.org/wiki/How_to_debug_Systemd_problems
- http://fedoraproject.org/wiki/Systemd
Aufgaben und Anwendungen
Mounten
eines RAID Arrays
# # srv-smb-ra6.mount # [Unit] Description=srv-smb-ra6 [Mount] What=/dev/md/Tokio:0 Where=/srv/smb/ra6 [Install] WantedBy=local-fs.target
# # /etc/systemd/system/srv-nas-user1.mount # [Unit] Description=srv-nas-user1 Requires=network-online.target After=network-online.target [Mount] What=//newyork/user1 Where=/srv/nas/user1 Type=cifs Options=guest
# # /etc/systemd/system/root-.wine-drive_w.mount # # Mount für den cOrgaMon Server # [Unit] Description=root-.wine-drive_w Requires=network-online.target smb.service After=network-online.target smb.service [Mount] What=//tokio.pcworld/app Where=/root/.wine/drive_w Type=cifs Options=guest
Login
- der "automatische Login" soll bei Servern selbstverständlich verhindert werden
- Q: How To Disable Auto Login?
- A: Yast - Security and Users - User/Group Management - Expert Options >Login Settings
- der resourcenfressende grafische Anmeldeschirm soll unterdrückt werden
systemctl set-default multi-user.target
Apache2 Webserver
systemctl enable apache2 systemctl start apache2
cOrgaMon
# # /etc/systemd/system/cOrgaMon-XMLRPC@.service # # systemd Rulez for the cOrgaMon Service als XMLRPC # # (c) 2016 Andreas Filsinger # [Unit] Description=cOrgaMon-XMLRPC Server Requires=root-.wine-drive_h.mount multi-user.target After=root-.wine-drive_h.mount multi-user.target [Service] UMask=000 Environment="WINEDEBUG=-all" "LANG=de_DE.UTF-8" ExecStart=/usr/bin/wine "C:\\Program Files (x86)\\OrgaMon\\cOrgaMon.exe" "--Port=%i"
aqbd
# # /etc/systemd/system/aqbd.service # # (c) Andreas Filsinger, OrgaMon.org # [Unit] Description=AqBanking Daemon After=multi-user.target [Service] StandardOutput=null StandardError=null ExecStartPre=/srv/aqb/aqbd.sh ExecStart=/srv/aqb/aqb -D [Install] WantedBy=multi-user.target
VirtualBox für GUI-OrgaMon
Diagnose
- sehr hilfreich ist die Grafik, die systemd erstellen kann.
- Es ist dann immer gut zu Erkennen, wenn Dienste nicht starten können weil Abhängigkeiten nicht funktionieren
systemd-analyze plot > /srv/www/web/systemd.svg
Alternativen
vor openSuSe 12.1
Nehmen wir an, Du hast ein Skript deindienst.sh das deinen Dienst startet, dies soll ab sofort auch nach einem Neustart des Server erfolgen. Das geht so:
- in /etc/init.d
cp skeleton deindienst ln -s deindienst /usr/sbin/rcdeindienst
- nun deinen Dienst anpassen
joe deindienst
# Provides: deindienst # Required-Start: $ALL
- den ganzen Vorcheck wegmachen
-- snip # Check for missing binaries (stale symlinks should not happen) # Note: Special treatment of stop for LSB conformance FOO_BIN=/usr/sbin/FOO test -x $FOO_BIN || { echo "$FOO_BIN not installed"; if [ "$1" = "stop" ]; then exit 0; else exit 5; fi; } # Check for existence of needed config file and read it FOO_CONFIG=/etc/sysconfig/FOO test -r $FOO_CONFIG || { echo "$FOO_CONFIG not existing"; if [ "$1" = "stop" ]; then exit 0; else exit 6; fi; } # Read config . $FOO_CONFIG -- snap --
- im Startbereich einfach Dein Skript eintragen
## Start daemon with startproc(8). If this fails ## the return value is set appropriately by startproc. /sbin/startproc /etc/deindienst.sh
- nun den Autostart sicherstellen
chkconfig --add deindienst
- willst du jetzt schon starten?
rcdeindienst start