Linux.systemd

Aus OrgaMon Wiki
Zur Navigation springen Zur Suche springen

"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:

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

eines remote Samba-Shares

#
# /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

eines lokalen Samba-Shares

#
# /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

Mounten eines lokalen Samba-Shares

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