SBCL nohupをUbuntuは標準入力から読み込むことができませんでした
質問
Ubuntuの私には、スレッドとsbclの1.0.35をコンパイル。私は喜んで、コマンドラインからSBCLを使用することができますし、私のhunchentootのウェブサイトは、スレッドで動作しますが、私はそれがなくなってログアウトするとき。私はSBCLをnohupをしようとすると、
nohupを./src/runtime/sbcl --core出力/ sbcl.core
私が取得
(SB-IMPL :: SIMPLE-STREAM-PERROR "から読み取ることができませんでした〜S" #9)
私はは/ dev / nullに、標準入力またはファイルをリダイレクトし、スクリプトのコマンドラインオプションを使用しての様々な組み合わせを試みたが、私は非常に何が起こっているかを得ることはありません。
どのように私はnohupをしてLinux上でコマンドラインからSBCL開始し、私のREPL(ウェブサイト)ランニングを続けるのですか?
解決 3
Dmity-VKは、右のトラックに私を送った、ありがとうございました。 SBCLは、あなたがそれを起動REPLを起動しようとすると、内標準から読み込みます。あなたがリダイレクトされるでnohup
標準を使用して読み取ることができないとき。 SBCLはその後で...ので、無限ループの標準から読み取ろうとデバッガに落ちます。 --script
タグはスクリプトが読み込まれた後、それは(quit)
を持っていることを除いて、これを解決するに近づきます。だから私は私のスクリプトと出来上がりに無限ループを置きます。
これはあなたがhunchentootサーバを起動させてくださいSBCLとUbuntuのサーバー上のように、
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)))
他のヒント
RESTASアンドレイMoskvitinによるウェブ・フレームワーク(「RESTアプリケーション・サーバー」)が正しくSBCLインスタンスをデーモン化するためのコードを含んでいます。 http://github.com/archimag/restas/blobを参照してください。 /master/contrib/restas-daemon.lispする。あなたは簡単にRESTAS-特定の部分をオフにリッピングすることができます。
あなたはヌー画面のでSBCLを開始し、その後のセッションから切り離すことができます。
また、これはあなたのREPL後でに再接続する可能性を与えます。