Upstart ist ein ereignisbasiertes Init-System, das in einigen Upstart Linux-Distributionen zur Verwaltung von Diensten und Aufgaben während des Bootvorgangs und im laufenden Betrieb verwendet wird. Es arbeitet über ein System von Jobs und Ereignissen. Obwohl die Verfolgung des Ursprungs jedes Ereignisses komplex sein kann und oft erfordert, dass Sie Jobkonfigurationen in /etc/init untersuchen, müssen Sie diese Jobs häufiger direkt über die Befehlszeile verwalten. Das Dienstprogramm initctl bietet hierfür eine Reihe von Befehlen.
Anzeigen des Jobstatus
Um eine Liste aller bekannten Upstart-Jobs und ihrer aktuellen Zustände anzuzeigen, verwenden Sie den Befehl list.
initctl list
shutdown stop/waiting
console stop/waiting
...
Die Ausgabe zeigt den Jobnamen, sein Ziel und seinen aktuellen Status. Im Beispiel shutdown stop/waiting ist der Jobname shutdown, sein Ziel ist stop und sein aktueller Status ist waiting. Der Jobstatus und die Ziele ändern sich, wenn Sie mit ihnen interagieren.
Um den Status eines bestimmten Jobs zu überprüfen, verwenden Sie den Befehl status.
initctl status networking
networking start/running
Manuelle Steuerung von Jobs
Während Konfigurationsdateien für Jobs in /etc/init definieren, wie Jobs starten, stoppen und mit Ereignissen interagieren, können Sie diese Aktionen manuell mit initctl außer Kraft setzen. Dies ist nützlich für die Fehlerbehebung oder die Durchführung administrativer Aufgaben.
Um einen Job manuell zu starten:
sudo initctl start networking
Um einen Job manuell zu stoppen:
sudo initctl stop networking
Um einen Job manuell neu zu starten, was eine bequeme Abkürzung für das Stoppen und anschließende Starten ist:
sudo initctl restart networking
Auslösen benutzerdefinierter Ereignisse
Upstart-Jobs werden durch Ereignisse ausgelöst. Sie können auch manuell ein Ereignis "emittieren" (auslösen), was nützlich sein kann, um benutzerdefinierte Jobs auszulösen oder zu Testzwecken. Jeder Job, der so konfiguriert ist, dass er auf some_event startet, würde durch den folgenden Befehl ausgelöst.
sudo initctl emit some_event