Ubuntu startet X-Windows von GDM (für Systeme, die den Standard Ubuntu-Desktop verwenden ) oder von KDM (für Systeme, die Kubuntu-Desktop verwenden ).
Um ein Skript vor dem Starten von GDM / KDM auszuführen, können Sie entweder
- Schreiben Sie Ihr eigenes Upstart-Skript zur Ausführung vor GDM. oder
- Ändern Sie das GDM-Skript des Systems, um ein benutzerdefiniertes externes Skript (z. B. Ihr Skript /etc/init.d/whereami ) als eine der ursprünglichen Aufgaben auszuführen.
Ubuntu verwendet Runlevel im Debian-Stil: Runlevel 1 ist der Einzelbenutzer-Wiederherstellungsmodus. Runlevel 2-5 sind alle gleich (GUI-Multi-User); und standardmäßig startet das System auf Runlevel 2 .
Ubuntu 9.10 verwendet Upstart, das Dienststart-Skripts in / etc / init bereitstellt . Die traditionelleren Init-Skripte in /etc/init.d und /etc/rc.d stehen weiterhin für Dienste zur Verfügung, die nicht auf Initstart- Scripts im Upstart-Stil portiert wurden, aber GDM hat eines. (Hinweis: Ubuntu 9.10 enthält /etc/init.d/gdm, erstellt jedoch keine /etc/rcX.d-Symlinks dafür.)
Der GDM-Start wird von / etc / init / gdm gesteuert . Diese Zeilen oben im Skript geben an, wann GDM gestartet und gestoppt werden soll. Beachten Sie, dass es keine Runlevel- Spezifikation für das Starten von GDM gibt - nur Dienste, die zuerst gestartet werden müssen.
start on (filesystem and started hal and tty-device-added KERNEL=tty7 and (graphics-device-added or stopped udevtrigger)) stop on runlevel [0156] emits starting-dm
Informationen zu Upstart-Skripts finden Sie in man 5 init. In den Dateien /etc/init/*.conf Ihres Systems finden Sie einige Beispiele. Siehe auch die Start- Event- Manpage:
Beispiel
Ein Dienst, der immer dann, wenn ein anderer Dienst zu laufen will, würde laufen, begann vor und gestoppt, nachdem es könnte, benutzen Sie :start on starting apache stop on stopped apache
Eine Aufgabe, die ausgeführt werden muss, bevor eine andere Aufgabe oder ein anderer Dienst gestartet wird, kann Folgendes verwenden:
start on starting postgresql
Beachten Sie auch, dass die GDM / KDM-Upstart-Skripts ein Signal ausgeben, das "start -dm" ist, das auch nützlich sein kann.
Daher sollte ein Upstart-Skript, das vor der Ausführung von GDM ausgeführt wurde, eine der folgenden Start- Klauseln verwenden:
# run only when starting GDM start on starting gdm # run when starting GDM or KDM start on (starting gdm or starting kdm) # run when starting any DM # starting-dm is a custom event emitted by the GDM/KDM/etc scripts start on starting-dm