ubuntuusers.de

ubuntuusers.deWikirc.local

E-Mail Benachrichtigungen funktionieren derzeit nicht, das Problem ist bekannt, wird untersucht und baldmöglichst behoben. Besten Dank für das Verständnis und die Geduld.

rc.local

Dieser Artikel wurde für die folgenden Ubuntu-Versionen getestet:

Zum Verständnis dieses Artikels sind folgende Seiten hilfreich:

Möchte man eigene Dienste, Skripte oder Programme, die keinen Eintrag in den Runleveln besitzen, beim Systemstart automatisch laden, so kann man diese in die Datei /etc/rc.local eintragen. Dabei entfällt die Verwendung von sudo – Einträge werden immer mit Root-Rechten ausgeführt.

Allerdings gilt dieser Eintrag nur für Programme ohne eine grafische Oberfläche. Möchte man Programme wie Pidgin oder Skype nach dem Anmelden automatisch starten, hilft der Artikel Autostart weiter.

Verwendung

Man kann die Datei /etc/rc.local in einem Texteditor [2] mit Root-Rechten [3] öffnen und bearbeiten. Eigene Einträge muss man vor

exit 0

hinzufügen. Das exit 0 muss immer am Ende der Datei bleiben. Sinnvoll ist die Angabe des vollständigen Pfads zum gewünschten Programm, also statt foo besser /usr/bin/foo. Beispiel:

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

## Beispiele: 
/usr/bin/foo              # ein Programm
/usr/local/bin/bar.sh     # ein Shellskript
/etc/init.d/foobar start  # ein Dienst

exit 0

Anschließend werden die eingetragenen Befehle beim nächsten Start des Systems ausgeführt. Es sind keine weiteren Schritte nötig.

Problembehebung

Da Upstart asynchron arbeitet, kann es passieren, dass manche Dienste oder auch eigene Befehle quasi zu früh ausgeführt werden und damit unter Umständen der gewünschte Effekt nicht eintritt. Dem kann entgegengewirkt werden, in dem man die Ausführung mit sleep verzögert bzw. wiederholt. Ein Beispiel:

# startet den Dienst powernowd nach 60 Sekunden neu
(/bin/sleep 60 && /etc/init.d/powernowd restart)

sleep x kann auch in eigenen Skripten genutzt werden.

Des Weiteren kann es passieren, dass die Datei nicht vollständig ausgeführt wird. Dazu kommt es, wenn einer der eingefügten Befehle einen Fehler erzeugt (Returncode != 0). Da in der ersten Zeile #!/bin/sh -e standardmäßig die Option -e angegeben ist, wird die Ausführung sofort abgebrochen. Um dieses Verhalten abzustellen, verkürzt man die 1. Zeile auf #!/bin/sh.

Eine weitere Alternative wäre die Verwendung eines eigenen Upstart-Skriptes.

Schlafmodi

In seltenen Fällen kann es erforderlich sein, nach dem Wiederaufwachen aus Suspend oder Hibernate Befehle auszuführen. Dann hilft /etc/rc.local nicht weiter, da diese Datei nur beim Rechnerstart berücksichtigt wird. Wie man dennoch Abhilfe schaffen kann, wird im Artikel pm-utils erklärt.

Diese Revision wurde am 18. Juni 2014 09:11 von aasche erstellt.
Die folgenden Schlagworte wurden dem Artikel zugewiesen: System