Linux.systemd
"systemd" ist ein Linux Programm das den Boot-Prozess eines Linux-System durchführt. Zu startende Dienste sind von anderen abhängig so dass dieser Boot-Prozess nicht ganz einfach ist. Infos zu 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
Sicherstellen des Laufwerkes I:\
/etc/systemd/system/root-.wine-drive_i.mount
# # cOrgaMon.service depends on # [Unit] Description=/root/.wine/drive_i After=network.target [Mount] What=//raib91/i$ Where=/root/.wine/drive_i Type=cifs Options=guest [Install] WantedBy=orgamon.service
Der cOrgaMon-Service
/etc/systemd/system/orgamon.service
# # cOrgaMon XML RPC Server Start Up # [Unit] Description=cOrgaMon.exe XML-RPC-Server under wine Requires=root-.wine-drive_i.mount After=root-.wine-drive_i.mount [Service] Environment=LANG=de_DE.UTF-8 ExecStart=/usr/bin/wine "C:\\Program Files\\OrgaMon\\cOrgaMon.exe" User=root # # In case of a restart # Restart=always RestartSec=25s # # Logs go to Syslog # StandardOutput=syslog StandardError=syslog SyslogIdentifier=cOrgaMon.exe [Install] WantedBy=multi-user.target #
Start
systemctl enable orgamon.service systemctl start orgamon.service
aqbd
VirtualBox für GUI-OrgaMon
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
Diagnose
systemd-analyze plot > /srv/www/web/systemd.svg