2010-03-16 9 views
4

우분투에서 스레드로 sbcl 1.0.35를 컴파일했습니다. 행복하게 명령 줄에서 sbcl을 사용할 수 있고 hunchentoot 웹 사이트는 스레딩과 함께 작동하지만 로그 아웃하면 사라졌습니다. 나는 nohup을 할 때nohup SBCL 우분투 표준 입력에서 읽을 수 없습니다

nohup을 ./src/runtime/sbcl --core 출력/sbcl.core 내가 할

(SB-IMPL :: SIMPLE-STREAM-perror는 "모를 수가 SBCL ~ S "# 9)

표준 입력을/dev/null 또는 파일로 리디렉션하고 스크립트 명령 행 옵션을 사용하여 다양한 조합을 시도했지만 어떤 일이 벌어지는 지 알 수 없습니다. .

nohup을 사용하여 Linux의 명령 줄에서 sbcl을 시작하고 repl (웹 사이트)을 계속 실행하려면 어떻게해야합니까?

답변

1

Dmity-vk가 올바른 방향으로 나를 보냈습니다. 감사합니다. SBCL은 시작할 때 repl을 시작하려고 시도하고 표준에서 읽습니다. nohup을 사용할 때 표준 입력은 경로 재 지정되어 읽을 수 없습니다. 그런 다음 SBCL은 표준에서 읽으려고하는 디버거로 떨어집니다 ... 따라서 끝없는 루프. --script 태그는 스크립트가 읽히면 (quit)이 있다는 점을 제외하면이 문제를 해결하는 데 가깝습니다. 그래서 나는 내 대본에 짜릿한 반복을 넣었다. SBCL와 우분투 서버에 이렇게

이 당신이 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))) 
같은 마지막 라인 뭔가로
2

Gnu Screen에서 SBCL을 시작한 다음 세션에서 분리 할 수 ​​있습니다.

이렇게하면 나중에 REPL에 다시 연결할 수도 있습니다.