Nohup SBCL Ubuntu konnte nicht aus Standardeingaben lesen
Frage
Auf Ubuntu habe ich SBCL 1.0.35 mit Threading zusammengestellt. Ich kann SBCL gerne aus der Befehlszeile verwenden, und meine Hunchentoot -Website funktioniert mit Threading, aber wenn ich mich abmumne, ist es weg. Wenn ich versuche, sbcl zu nohup
nohup ./src/runtime/sbcl ---core output/sbcl.core
Ich bekomme
(SB-IMPL :: Simple-Stream-Perror "konnte nicht aus ~ S" # 9)
Ich habe verschiedene Kombinationen zur Umleitung der Standardeingabe in /dev /null oder einer Datei und die Verwendung der Befehlszeilenoption der Skript versucht, aber ich bekomme nicht ganz, was los ist.
Wie starte ich SBCL aus der Befehlszeile unter Linux mit NoHup und halte meine Repl (Website) laufend?
Lösung 3
Dmity-vk hat mich auf den richtigen Weg geschickt, danke. SBCL versucht, eine Reply zu starten, wenn Sie sie starten, und liest aus dem Standard in. Wenn Sie verwenden nohup
Der Standard in wird umgeleitet und kann nicht gelesen werden. SBCL fällt dann zum Debugger, der versucht, aus Standard in ... daher die endlose Schleife zu lesen. Das --script
Das Tag kommt der Lösung nahe, außer dass es a hat (quit)
Sobald das Skript gelesen wurde. Also habe ich eine endlose Schleife in mein Drehbuch und Voila gesteckt.
Auf einem Ubuntu -Server mit SBCL sollten Sie also einen Hunchentoot -Server starten lassen
sudo nohup ./run-sbcl.sh --script foo.lisp > /dev/null 2> /dev/null &
wo foo.lisp als seine letzten Zeilen so etwas wie hat
(defvar *alive* t)
(loop (sleep 1000) (if (not *alive*) (quit)))
Andere Tipps
Restas Web-Framework ("Rest Application Server") von Andrey Moskvitin enthält Code, um die SBCL-Instanz ordnungsgemäß zu demmonieren. Sehen http://github.com/archimag/restas/blob/master/contrib/restas-daemon.lisp. Sie können problemlos rast-spezifische Teile abreißen.
Sie könnten SBCL in starten GNU -Bildschirm und dann von der Sitzung abnehmen.
Dies gibt Ihnen auch die Möglichkeit, später zu Ihrer Wiederholung wieder aufzubauen.