Ich habe keine Ahnung, wo ich anfangen soll. Ich habe über Dämonen gelesen und das Konzept nicht verstanden.
Mehr Details :
- Ich habe einen Crawler geschrieben, der niemals stehen bleibt, und Crawler über RSS im Internet.
- Der Crawler wurde in Java geschrieben - daher ist es gerade ein Glas.
- Ich bin Administrator auf einem Computer mit Ubuntu 11.04.
- Es besteht eine gewisse Wahrscheinlichkeit, dass der Computer abstürzt. Daher möchte ich, dass der Crawler bei jedem Start des Computers ausgeführt wird.
- Außerdem möchte ich, dass es weiter läuft, auch wenn ich mich abgemeldet habe. Ich bin mir nicht sicher, ob dies möglich ist, aber die meiste Zeit bin ich ausgeloggt und ich möchte immer noch, dass es kriecht.
Irgendwelche Ideen? Kann mich jemand in die richtige Richtung weisen?
Nur auf der Suche nach der einfachsten Lösung.
Ja! Es ist möglich. :) Upstart ist der richtige Weg, um sicherzustellen, dass der Dienst weiterhin ausgeführt wird. Es hat fünf Pakete, die alle standardmäßig installiert sind:
Das Lernen ist sehr unterhaltsam und es lohnt sich. Upstart hat eine Website: http://upstart.ubuntu.com/
quelle
3 schnelle Vorschläge ...
Erstellen Sie einen S - Tarte Skript in
/etc/rc3.d
(Multi - User - Konsolen - Modus) mit entsprechenden K ill - Skripte in/etc/rc.0
und/etc/rc6.d
Ihr Java - Programm in einer kontrollierten Art und Weise zu töten , wenn das System herunterfährt (runevel 0) oder Neustarts (Runlevel 6) Siehe Einführung in den Runlevels .Möglicherweise können Sie Ihre Java-App in Runlevel 2 (rc2.d) starten, aber als Crawler benötigen Sie TCP / IP. Stellen Sie daher sicher, dass Ihr Netzwerkdienst in Runlevel 2 verfügbar ist / gestartet wurde. In Runlevel 3 ist die Vernetzung definitiv aufwärtsgerichtet.
/etc/init.d
enthält alle eigentlichen Start / Kill-Skripte./etc/rcN.d
Verzeichnisse enthalten nur Links zu ihnen, denen S oder K vorangestellt sind, um sie zu starten bzw. zu beenden, je nach Runlevel N.Ein Prozess, der von ausgeführt wird,
crond
sollte zwischen den Abmeldungen bestehen bleiben. Vielleicht füge es deiner Crontab hinzu.Ein Prozess, der mit ausgeführt wird,
nohup
sollte ebenfalls bestehen bleiben. Siehe nohup: Führen Sie einen Befehl auch nach dem Abmelden aus .Standardmäßig wird
myapp.jar
die Standardausgabe in eine Datei mit dem Namen./nohup.out
oder,$HOME/nohup.out
wenn diese nicht beschreibbar ist , in eine Datei mit dem Namen .quelle
Seien Sie sich auch bewusst, wenn Sie Anwendungen machen mit:
Um die Berechtigungen 0755 zu haben und den Pfad zu verwenden oder vor Ihrem .sh zu erhalten. Angenommen, Ihr Skript befindet sich in /root/test.sh. Sie sollten zuerst auf CD wechseln,
/root/
bevor Sie darauf zugreifentest.sh
.Der beste Weg ist also, ein SH auf init.d zu erstellen und dort den Pfad zu your zu ändern
sh
und es in der Startfunktion auszuführen.quelle
Einfache Startskripte mit Java-Versionsprüfung für Linux auth-agent und Windows auth-agent.bat
quelle
Der einfachste Weg ist die Verwendung
supervisord
. Weitere Informationen finden Sie unter http://supervisord.org/.Sie können hier auch weitere Details anzeigen:
Ausführen einer ausführbaren JAR-Datei beim Systemstart
https://www.digitalocean.com/community/tutorials/installations- und verwaltungsanleitung-auf-ubuntu-und-debian-vps
quelle