rc.local
Erstellt am 16.05.2019 um 11:00Uhr.
Prinzipiell kann rc.local als Autostart bezeichnen. Dieser besteht aus einer Datei, welche Dienste, Skripte oder Programme ohne GUI mithilfe von Befehlen starten kann.
1
su ts3 -c '/home/ts3/server/ts3server_startscript.sh start'
Diesen Befehl nutze ich beispielsweise, um meinen TeamSpeak-Server automatisch bei jedem Neustart des Servers zu starten.
Seit Debian 8 (und Ubuntu 14.10) muss rc.local als Service manuell erstellt werden.
Dafür benötigen wir als erstes eine leere Service-Datei im Verzeichnis
/etc/systemd/
. Diese nennen wir rc-local.service
. Dafür verwende ich nano. Sollte dieses Paket nicht installiert sein, kann man es mit apt install nano
installieren. Also dann:
1
nano /etc/systemd/system/rc-local.service
Nun befinden wurde der Editor mit unserer Datei geöffnet. Jetzt müssen die folgenden Zeilen Inhalt dieser Datei werden.
1
2
3
4
5
6
7
8
9
10
11
12
13
Description=/etc/rc.local
ConditionPathExists=/etc/rc.local
[Service]
Type=forking
ExecStart=/etc/rc.local start
TimeoutSec=0
StandardOutput=tty
RemainAfterExit=yes
SysVStartPriority=99
[Install]
WantedBy=multi-user.target
Perfekt. Es ist nun Zeit mit STRG+X, Y und Enter zu speichern und den Editor zu verlassen. Nun fehlt uns nur noch unsere rc.local-Datei, bevor wir das ganze aktivieren können. Diese muss in das Verzeichnis /etc/
.
1
nano /etc/rc.local
Nun müssen die folgenden Zeilen hineinkopiert werden.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
#!/bin/sh -e
#
# rc.local
#
# This script is executed at the end of each multiuser runlevel.
# Make sure that the script will „exit 0“ on success or any other
# value on error.
#
# In order to enable or disable this script just change the execution
# bits.
#
# By default this script does nothing.
exit 0
Oberhalb von exit 0
müssen die Befehle stehen, die beim Start des Servers ausgeführt werden sollen. Nach der Fertigstellung kann man den Editor wieder, wie oben beschrieben, verlassen.
Nun muss unser Skript ausführbar gemacht werden. Der Befehl dazu lautet:
1
chmod +x /etc/rc.local
Jetzt können wir den Service aktivieren und starten. Das funktioniert wie folgt:
1
2
systemctl enable rc-local
systemctl start rc-local.service