Hallo, ich habe gerade Ubuntu Upstart entdeckt (etc / init / * scripts). Und ich möchte es verwenden, um eine bestimmte Anwendung auszuführen. Diese App wird über eine Befehlszeile ausgeführt, aber es gibt ein Argument zum Starten einer Instanz der App und ein anderes Argument zum Stoppen (sagen wir 'Start' und 'Stop'). Gibt es eine Möglichkeit, Upstart dafür zu verwenden?
7
Antworten:
Es sollte so einfach sein wie das Erstellen einer Datei
/etc/init/myjob.conf
:Sie sollten dann in der Lage sein,
sudo start myjob
zu starten undsudo stop myjob
zu stoppen.Weitere Informationen finden Sie unter http://upstart.ubuntu.com .
quelle
/etc/init/ufw.conf
scheint genau das zu tun, was dort stark entmutigt ist. : - /Wenn Sie den Dienst nur beim Booten starten / stoppen möchten, legen Sie Ihr Skript in /etc/init.d ab und führen Sie es aus
Oder wenn sich das beschwert
Beide fügen es dem Booten / Herunterfahren hinzu.
Beachten Sie, dass dies bedeutet, dass es als root ausgeführt wird. Sie sollten daher sicherstellen, dass das Skript Benutzer zu Ihrem Benutzer oder einem anderen Benutzer wechselt, unter dem dieses Programm ausgeführt werden soll.
Upstart soll solche Skripte nach Möglichkeit ersetzen. Die Gründe dafür sind ein schnellerer Start und eine klarere Codierung der Informationen, die erforderlich sind, um zu wissen, wann ein Dienst gestartet / gestoppt werden muss. Der schnellere Start wird erreicht, indem nur der Inhalt von / etc / init gelesen werden muss, um loszulegen. Dies ist besonders vorteilhaft, wenn Sie ureadahead zum Startvorgang hinzufügen, da je weniger zufällige winzige Skriptdateien ureadahead zwischenspeichern muss, desto mehr Es kann Zeit für wichtige Dinge wie Bibliotheken und Programme aufwenden, die zum Starten des Systems erforderlich sind.
Ich wette, dass das Skript, das Sie ausführen, einige Dinge tut, um die Umgebung einzurichten, und dann das Programm in einem dämonisierten Modus ausführt. Ihr Startjob sollte versuchen, die Logik des Skripts zu ersetzen und nicht nur das Skript auszuführen.
quelle
Ich denke, Sie möchten, dass es bei verschiedenen Ereignissen gestartet oder gestoppt wird, sodass es einfacher ist, zwei verschiedene Jobs einzurichten.
Wenn die gleichen Ereignisse Ihre App umschalten, können Sie einen Job mit einem Skript einrichten, das überprüft, ob er ausgeführt wird oder nicht, und somit Ihre App startet oder stoppt.
quelle