4

Ubuntuでは、スレッドを使用してsbcl1.0.35をコンパイルしました。コマンドラインからsbclをうまく使用でき、hunchentoot Webサイトはスレッド化で機能しますが、ログアウトすると消えてしまいます。sbclをnohupしようとすると

nohup ./src/runtime/sbcl --core output / sbcl.core

私は得る

(SB-IMPL :: SIMPLE-STREAM-PERROR "〜Sから読み取ることができませんでした"#9)

標準入力を/dev/ nullまたはファイルにリダイレクトし、スクリプトコマンドラインオプションを使用するさまざまな組み合わせを試しましたが、何が起こっているのかよくわかりません。

Linuxのコマンドラインからnohupを使用してsbclを起動し、repl(website)を実行し続けるにはどうすればよいですか?

4

3 に答える 3

3

Gnu ScreenでSBCL を開始し、セッションから切り離すことができます。

これにより、後で REPL に再アタッチすることもできます。

于 2010-03-18T14:56:13.690 に答える
3

Andrey Moskvitin による RESTAS Web フレームワーク (「REST アプリケーション サーバー」) には、SBCL インスタンスを適切にデーモン化するためのコードが含まれています。http://github.com/archiamag/restas/blob/master/contrib/restas-daemon.lispを参照してください。RESTAS 固有のパーツを簡単に切り取ることができます。

于 2010-03-17T03:09:15.233 に答える
1

Dmity-vk は私を正しい軌道に乗せてくれました、ありがとう。SBCL は、起動時に repl を開始しようとし、標準入力から読み取ります。nohup標準入力を使用すると、リダイレクトされて読み取ることができません。次に、SBCL は、標準から読み取ろうとするデバッガーにドロップします...したがって、無限ループが発生します。この--scriptタグは(quit)、スクリプトが読み取られると が含まれていることを除いて、これをほぼ解決します。それで、スクリプトに無限ループを入れて、出来上がりです。

したがって、sbcl を使用する ubuntu サーバーでは、hunchentoot サーバーを起動できるはずです。

sudo nohup ./run-sbcl.sh --script foo.lisp > /dev/null 2> /dev/null &

foo.lisp の最後の行には次のようなものがあります

(defvar *alive* t)

(loop (sleep 1000) (if (not *alive*) (quit)))
于 2010-03-25T06:57:36.863 に答える