Eigene Startscripte für Linux schreiben

veröffentlicht am 31. Dezember 2010

Ab und zu kommt es mal vor, dass man Serverdienste manuell installiert oder dass man eigene Serverdienste schreibt, die beim Systemstart mitgestartet werden sollen. Hierzu kann man sich einfache Startscripte schreiben, die beim Bootvorgang des entsprechenden Linux-Systems automatisch mitgestartet werden können. Hier erfährst du, wie man grundsätzlich eigene Startscripte schreibt und wie man sie aktiviert.

Zunächst einmal erstellst du unter /etc/init.d eine Textdatei mit einem aussagekräftigen Namen, der zu dem jeweiligen Dienst passt. In diese Datei kopierst du folgendes:

#! /bin/bash

case "$1" in
	start)
		# Anweisungen zum Starten hier eingeben
		;;
	stop)
		# Anweisungen zum Stoppen hier eingeben
		;;
	restart)
		$0 stop
		$0 start
		;;
	*)
		echo "Usage: $0 {start|stop|restart}"
		;;
esac

Wie dir vielleicht auffällt, ist dies ein ganz normales Bashscript. An den entsprechenden Stellen setzt du die auszuführenden Anweisungen zum Starten und Stoppen des Dienstes ein. Zudem kannst du nach der ersten Zeile Variablen festlegen, die für das gesamte Script oder auch für das ganze System gelten sollen. <Dienst> muss in dem Script natürlich durch deinen Scriptnamen ausgetauscht werden.

Nachdem du alle Anweisungen ergänzt hast, muss das Script noch ausführbar gemacht und in den Bootvorgang eingebunden werden:

chmod +x /etc/init.d/<Dienst>
update-rc.d <Dienst> defaults

Hier muss natürlich wieder <Dienst> entsprechend angepasst werden. Beim Systemstart wird automatisch das Script gefolgt von start aufgerufen, sodass der start-Block ausgeführt wird. Eventuell solltest du für den Dienst noch einen eigenen Benutzer anlegen, mit dem der Dienst ausgeführt wird, damit der Dienst nicht mit root-Rechten läuft. Dazu musst du dann natürlich noch entsprechende sudo-Anweisungen zu dem Script hinzufügen :)

Wenn du noch Fragen hast oder weitere Erklärungen benötigst, hinterlasse mir einfach einen Kommentar :)

Kommentare

Danke für den Tipp. :)

Kommentar #1 von Ikem am 05. Februar 2011


Moin,
das ist schonmal ein guter Tipp, aber da ich selber noch Anfänger in dem Bereich bin, wäre es total super, wenn du nochmal näher erläutern könntest, wie man das Script beim Systemstart mit einem nicht-root-Benutzer aufruft.
Danke :)

Kommentar #2 von jilk am 03. Mai 2012


Hallo jilk,

diese Art der Startscripte werden immer mit root-Rechten ausgeführt. Du kannst lediglich mit sudo auf einen anderen Benutzer umschwenken. Möchtest du einfach bei der Anmeldung deines Benutzers bestimmte Aktionen durchführen, musst du die entsprechenden Kommandos in die Datei .profiles direkt in deinem Benutzerverzeichnis schreiben. Geht es um den automatischen Start z.B. eines Browsers nach der Anmeldung bei der grafischen Benutzeroberfläche, dann findest du sicherlich in den Einstellungen der Oberfläche etwas entsprechendes.

Gruß
Patrick

Kommentar #3 von Patrick am 03. Mai 2012


Hi,

also ich hab mir mit dem Script den Server abgeschossen xD.
Jedesmal wenn ich reboot eingebe, hat der Server Probleme die WAN-IP zu erkennen.

Wie kann ich das Script wieder aus dem Startvorgang entfernen?

Mit freundlichen Grüßen,

Kevin

Kommentar #4 von Kevin am 27. November 2012


Hallo Kevin,

du meinst wohl, dass DEIN Script den Server abschießt, denn in diesem Artikel findest du nur eine Vorlage für Startscripte ohne jegliche Funktionalität.

Entfernen kannst du dein Startscript per: update-rc.d -f <Dienst> remove

Kommentar #5 von Patrick am 27. November 2012


Hinterlasse einen Kommentar