Linux: Autostartskript erstellen und einbinden
Am Beispiel von Ubuntu möchte ich euch zeigen, wie ihr ein Skript erstellen könnt, das automatisch beim Systemstart ausgeführt wird.
Zunächst wird eine Datei mit dem Namen “local.autostart” unter “/etc/init.d/” erstellt.
sudo touch /etc/init.d/local.autostart
Als Ausgangsbasis für das Skript kann die offizielle Vorlage “/etc/init.d/skeleton” verwendet werden. Für einfache Aufgaben kann alternativ folgendes Beispiel verwendet werden:
#! /bin/sh
### BEGIN INIT INFO
# Provides: local.autostart
# Required-Start: $start
# Required-Stop: $shutdown
# Default-Start: 2 3 4 5
# Default-Stop: 0 1 6
# Short-Description: Kurze Beschreibung
# Description: Lange Bechreibung
### END INIT INFO
# Author: Name
# Aktionen
sh /home/username/scripts/test.sh
Der Kopfteil ist sehr wichtig und muss vorhanden sein, denn er wird später vom Befehl “update-rc.d” verwendet. Er darf nicht gelöscht und sollte entsprechend angepasst werden. Unterhalb von “# Aktionen” stehen dann die eigentlichen Befehle. Im Beispiel wird ein weiteres Skript ausgeführt.
Die Datei wird nun ausführbar gemacht:
sudo chmod 755 /etc/init.d/local.autostart
Abschließend fügt man das Skript mit dem Befehl “update-rc.d” in die entsprechenden Runlevel ein.
sudo update-rc.d local.autostart defaults
Unter Fedora und openSuSE ist die grundlegende Vorgehensweise identisch. Lediglich der Befehl zum Einfügen in die entsprechenden Runlevel ist anders:
chkconfig --add local.autostart
chkconfig local.autostart on
Sie sehen gerade einen Platzhalterinhalt von X. Um auf den eigentlichen Inhalt zuzugreifen, klicken Sie auf die Schaltfläche unten. Bitte beachten Sie, dass dabei Daten an Drittanbieter weitergegeben werden.
Mehr Informationen
Der Kopf ist nicht notwendig, das klappt auch wunderbar ohne. Du hättest vielleicht nochmal beschreiben sollen, wie man über so ein Startscript auch neustarten und stoppen realisieren kann: http://www.techspread.de/6162/eigene-startscripte-fuer-linux-schreiben
Klar man kann viel machen. Hab ich aber noch nie benötigt daher auch nicht erwähnt.
Der Kopf mag für ein normales Script nicht nozwendig sein, aber für ein gemanagtes Autostart-Script ist er es sehr wohl. Ohne den Kopf weiß nämlich Linux nicht, wann es gestartet (mit Parameter ‘start’ aufgerufen) werden soll, welche Vorbedingungen (z.B. Festplatte) schon laufen müssen, wann es gestoppt werden muss (Aufruf mit Parameter ‘stop’), und welche Dienste es bereitstellt.
Zumindest die Zeile “Default-Start” (mit korrektem Inhalt) ist zwingend notwendig, damit das Script jemals automatisch ausgeführt wird. Ansonsten kann ‘update-rc.d’ nichts mit ihm anfangen.
Wer einfach nur ein Programm beim Start ausführen will, kann den Aufruf dafür einfach in /etc/rc.local packen. Dieses Script wird nach dem Startup ausgeführt.
Also werden deine Dienste immer beim Herunterfahren des Servers einfach gekillt, statt ordentlich heruntergefahren? ;)
Genauso ist es ;-) Da ich Linux nur selten nutze und wenn dann auch nur zu Testzwecken stört mich das nicht weiter.
Hey hab mal n frage bei mir hat das nicht so ganz funktsioniert wie kann ich hierbei
sudo update-rc.d local.autostart defaults
den Autostart wieder rückgängig machen ? das der nicht bei jedem start immer Fehler anzeigt
“sudo update-rc.d -f local.autostart remove” sollte funktionieren.
hi tolle Seite, bin Linux Anfänger und hab gehört das es ein script gibt, das alles mountet schon beim hochfahren, für opensuse und ubuntu, finde es aber nicht und ich kann keine scripte schreiben. Wäre für Hilfe sehr dankbar. Denn so muß man die Hardware nich immer manuell mounten. Naja bin noch ein lin anfänger tschuldigung.
Kein Problem. Da es genügend Hilfen im Web gibt, erspar ich mir eine Antwort. Bei Ubuntuusers wird dir geholfen.
Um ein Javaprozess automatisch zu starten muss noch der Pfad zu java angegeben werden.
Also PATH=pfad/zu/java/bin
Sonst weiß das Skript nix mit dem Befehl java anzufangen.
Ich habe einmal eine Frage und zwar habe ich einen Linux Server und würde gerne 2 Prozesse automatisch starten wenn der Server sich in irgend einer Art und Weise startet sprich wenn er neustartet oder einfach startet. Bitte um Hilfe Ich habe es damit versucht aber das funktioniert nicht
Welche Linux Distribution setzt du ein?