Auf Debian aufrüsten?

20

Ich habe in Ubuntu ein Upstart-Skript erstellt, da ich dachte, es wäre dasselbe für Debian. Aber Debian hat keinen /etc/initOrdner, den Ubuntu hat. Ich bin auf die Upstart- Download- Seite gegangen und habe festgestellt, dass sie Pakete haben apt-get install upstart, aber es fragt nach sysvinit, von dem ich weiß, dass es mein System vermasseln wird / könnte. Wie bringe ich mein Ubuntu-Skript auf Debian zum Laufen?

theTuxRacer
quelle

Antworten:

12

Es geht nicht direkt um Debian vs Ubuntu, sondern um SysVinit vs Upstart . Debian ist standardmäßig SysVinit. Sie können Upstart installieren, aber Sie müssen wissen, was Sie tun, und Sie sollten damit vertraut sein, bevor Sie überhaupt daran denken, es auf einem Produktionsserver zu installieren. Obwohl es theoretisch möglich ist, beide zu installieren, wobei nur einer von ihnen als Prozess Nummer 1 ausgeführt wird, unterstützt Debian dies nicht sofort.

Upstart ist jünger als SysVinit und verfügt über mehr Funktionen. Dies erklärt, warum Sie eine Upstart-Dienstbeschreibung nicht einfach nehmen und an SysVinit weiterleiten können. Sie müssen ein Skript für/etc/init.d schreiben . Grundsätzlich muss sich das Skript das erste Argument ( $1) und start/ stopoder restartden Dienst wie angegeben ansehen .

Wenn Sie Upstart-Ereignisse verwendet haben, um zu bestimmen, wann das Skript gestartet werden soll, müssen Sie einige andere Methoden anwenden. Upstart sammelt Ereignisse aus vielen verschiedenen Quellen. Sie können den Trigger von jedem Ort aus abrufen, an dem Upstart ihn abruft. In dieser Hinsicht ist Upstart nur eine bequeme Möglichkeit, nicht an vielen verschiedenen Orten und Protokollen nach Triggern suchen zu müssen.

Gilles 'SO - hör auf böse zu sein'
quelle
Wie kommt es, dass Ubuntu sowohl Upstart als auch SysVinit verwendet (oder wie es scheint)?
ColinM
@ColinM Ubuntu verwendet kein SysVinit.
Gilles 'SO- hör auf böse zu sein'
5

Der Grund dafür sysvinitist, dass es sich um Konflikte handelt. Beachten Sie auch, dass dies sysvinitals wichtig erachtet wird (lesen Sie: Nicht zu entfernen, es sei denn, Sie wissen, was Sie tun ).

Ein Teil der Ausgabe von "aptitude show upstart":

Conflicts: startup-tasks, system-services, sysvinit, upstart-compat-sysv, upstart-job

Wenn Sie es sich leisten können, Ihr System mit einem Schlauch zu versehen, fahren Sie fort und installieren Sie es.

Tshepang
quelle
Nein, es ist ein Produktionsserver. Kann ich auf keinen Fall einen Dienst erstellen, den ich vom Terminal aus starten und stoppen kann?
theTuxRacer
Fügen Sie dann Ihr Skript ein /etc/init.dund lassen Sie es das Minimum an start|stop|restartBefehlen verstehen . Sie müssen upstartdas Skript nicht ausführen, sondern nur Ihre übliche Befehlszeile.
Alex
@kau Wie wäre es, wenn Sie Ihren Produktionsserver auf einen Testcomputer klonen und Upstart installieren und testen?
Tshepang
@alex @Tshepang Kannst du einen Blick darauf werfen und raten, bitte? paste.ubuntu.com/555683 Das jar wird nicht ausgeführt.
theTuxRacer
Sie brauchen execes nicht - lesen Sie einige Hilfeseiten und / oder Bücher über Shell-Skripte.
Alex