Linux Systemd – Applikationen mit Autostart

Linux Systemd – Applikationen mit Autostart

Systemd in Linux - Wofür ist dies genau gut?

Beispiel: Selbst geschriebe Skripte und Applikationen werden zu Systemd hinzugefügt

Mit Systemd können wir Applikationen mit einem Autostart versehen. Dabei erstellen wir im /etc/systemd/system Verzeichnis eine sogenannte .service Datei. Diese dient dazu, genau zu definieren was der Service eben machen soll.

1. TeamSpeak 3 - Autostart via Systemd

				
					nano /etc/systemd/system/ts3.service
				
			

Folgende Parameter haben natürlich eine Bedeutung:

  1. User={Linux-User} – Hier wird ein Linux User aufgeführt der den Prozess ausführen soll.
  2. Group={Linux-User-Group} – Hier wird die Linux User Gruppe definiert und angegeben.
  3. WorkingDirectory={Working-Dir} – Der Ordner wo sich auch z.B der TeamSpeak 3 Server befindet.
  4. ExecStart={/path/of/ts3server_startscript.sh start} – Hier wird das ts3server_startscript.sh angegeben mit den start Parameter „start“ siehe .service File.
  5. ExecStop={/path/of/ts3server_startscript.sh stop} – Hier wird nur am Ende der start zu dem stop Parameter ersetzt
  6. RestartSec=15 – Hier wird wenn überhaupt der TeamSpeak 3 Server nach einem Crash innerhalb von 15 Sekunden neugestartet.
				
					[Unit]
Description=TeamSpeak 3 Autostart
After=network.service
 
[Service]
User=ts3
Group=ts3
Type=forking
WorkingDirectory=/path/of/WorkingDirectory
ExecStart=/path/of/script/ts3server_startscript.sh start
ExecStop=/path/of/script/ts3server_startscript.sh stop
PIDFile=/path/of/script/ts3server.pid
RestartSec=15
Restart=always
 
[Install]
WantedBy=multi-user.target
				
			
				
					systemctl enable ts3.service
systemctl daemon-reload
				
			
				
					# Server nach Service aktivierung neustarten.
reboot
				
			
				
					# TS3 server starten mit
service ts3 start

# TS3 Server kann gestoppt werden mit
service ts3 stop

# Auch der Status des Service kann abgefragt werden
service ts3 status
				
			

2. TS3AudioBot - Autostart via Systemd

				
					nano /root/ts3audiobot.sh
				
			
				
					#!/bin/bash

#Script by RAW Networks
#Blog: blog.codertalk.eu

if [ -z $1 ] || [ -z $2 ]; then

echo "Usage: start/stop /path/to/ts3audiobot"

exit;

fi

if [ $1 == "start" ]; then


    if ! screen -list | grep -q "ts3audiobot-service"; then

    screen -AmdS ts3audiobot-service $2/TS3AudioBot

    echo "Starting ts3audiobot"

    fi

fi

if [ $1 == "stop" ]; then


   screen -X -S "ts3audiobot-service" kill

fi
				
			

Nach dem einfügen anschließend speichern mit folgender Tastenkombination: STRG+O (Speichern) => STRG+X (Zum wieder verlassen des Editors).

				
					chmod 777 /root/ts3audiobot.sh
				
			
				
					nano /etc/systemd/system/ts3audiobot.service
				
			
				
					[Unit]
Description=TS3AudioBot Autostart
After=network.service

[Service]
User=root
Group=root
Type=forking
WorkingDirectory=/path/of/WorkingDirectory
ExecStart=/usr/bin/bash /root/ts3audiobot.sh start /path/of/WorkingDirectory
ExecStop=/usr/bin/bash /root/ts3audiobot.sh stop /path/of/WorkingDirectory
RestartSec=15
Restart=always

[Install]
WantedBy=multi-user.target
				
			

Nach dem einfügen anschließend speichern mit folgender Tastenkombination: STRG+O (Speichern) => STRG+X (Zum wieder verlassen des Editors).

				
					systemctl enable ts3audiobot.service
systemctl daemon-reload

				
			
				
					# ts3audiobot server starten mit
service ts3audiobot start

# ts3audiobot kann gestoppt werden mit
service ts3audiobot stop

# Auch der Status des Service kann abgefragt werden
service ts3audiobot status
				
			

3. Minecraft Server Autostart via Systemd

Autostart (Systemd) für Minecraft
				
					nano /root/minecraft.sh
				
			
				
					#!/bin/bash

#Script by RAW Networks
#Blog: blog.codertalk.eu

if [ -z $1 ] || [ -z $2 ]; then

echo "Usage: start/stop /path/to/minecraft"

exit;

fi

if [ $1 == "start" ]; then


    if ! screen -list | grep -q "minecraft-service"; then
# Bei spigot.jar ggf. umbenennen wenn die .jar File vom spigot.jar abweicht.
    screen -AmdS minecraft-service java -jar $2/spigot.jar

    echo "Starting minecraft-service"

    fi

fi

if [ $1 == "stop" ]; then


   screen -X -S "minecraft-service" kill

fi
				
			

Nach dem einfügen anschließend speichern mit folgender Tastenkombination: STRG+O (Speichern) => STRG+X (Zum wieder verlassen des Editors).

				
					chmod 777 /root/minecraft.sh
				
			
				
					nano /etc/systemd/system/minecraft.service
				
			
				
					[Unit]
Description=Minecraft Autostart
After=network.service

[Service]
User=root
Group=root
Type=forking
WorkingDirectory=/path/of/WorkingDirectory
ExecStart=/usr/bin/bash /root/minecraft.sh start /path/of/WorkingDirectory
ExecStop=/usr/bin/bash /root/minecraft.sh stop /path/of/WorkingDirectory
RestartSec=15
Restart=always

[Install]
WantedBy=multi-user.target
				
			

Nach dem einfügen anschließend speichern mit folgender Tastenkombination: STRG+O (Speichern) => STRG+X (Zum wieder verlassen des Editors).

				
					systemctl enable minecraft.service
systemctl daemon-reload
				
			
				
					# minecraft server starten mit
service minecraft start

# minecraft kann gestoppt werden mit
service minecraft stop

# Auch der Status des Service kann abgefragt werden
service minecraft status
				
			

Solltet Ihr weitere Ideen haben, welche Autostart’s man schreiben könnte für Systemd, so lasst es mich doch gerne in den Blog Kommentaren Wissen 🙂

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Pflichtfelder sind mit * gekennzeichnet.

*
*
Du kannst folgende <abbr title="HyperText Markup Language">HTML</abbr>-Tags und -Attribute verwenden: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong>

WordPress Appliance - Powered by TurnKey Linux