2012-09-13 6 views
2

나는 nodejs가 제공하는 웹 애플리케이션을 호스팅 할 목적으로 집에 우분투 서버를 설치했다. 내 서버에 연결 앱이 있습니다. 나는 단지 ssh를 다음로그 아웃 한 후 내 nodejs 프로세스를 계속 실행하는 데 영원히 작동하지 않는 이유는 무엇입니까?

node app.js &> server.log & 
logout 

뭔가를 할 때 나는 서버가 보류 같다 로그 아웃하고는 요청을 처리하지 않습니다,하지만 난 다시 ssh를 할 때 다시 요청을 처리하기 시작 후.

그래서 영원히 패키지가이 문제를 해결하도록 설계된 것처럼 보입니다. 이렇게 영원히 설치하고 이것을하고있다 :

forever start -al forever.log -ao serverout.log -ae servererror.log app.js 

나는이 명령에서 동일한 결과를 얻는다. 내 서버는 ssh 접속 중이지만 요청을 처리하지만 일단 로그 아웃하면 서버가 요청을 처리하지 않습니다. 이 문제를 해결하려면 어떻게해야합니까?

+1

'screen' 세션 또는'byobu'에서 서버를 실행할 수 있습니까? – rdrey

+0

화면을 시도했지만 로그 아웃하면 화면이 종료됩니다. 나는 아직 부작용을 시도하지 않았다. 나는 또한 nohup을 시도하고 성공적으로 사용할 수 없었습니다. – justspamjustin

+0

이 답변을 찾으셨습니까? 나는 또한 같은 문제에 직면하고있다. – Bhoomi

답변

0

cron을 사용해보십시오. 옵션없이 bash에서 crontab을 실행하면 계정에 대한 cron 구성을 가져올 수 있습니다. 루트 액세스가 필요할 수 있으므로 -u 옵션을 사용하여 사용자 계정을 지정해야합니다. 배포 구현에 대한 자세한 내용은 man crontab을 참조하십시오.

더 나은 곳이있을 것이라고 확신하지만, this은 cron의 문법에 관한 훌륭한 튜토리얼입니다.

0

이 제품은 영원히 사용하지 않지만 생산 준비 도구는 Supervisord (예 : Running and managing nodejs applications on single server)입니다.

[program:myapp] 
command=node myapp.js     ; the program (relative uses PATH, can take args) 
directory=/www/app/      ; directory to cwd to before exec (def no cwd) 
process_name=myapp      ; process_name expr (default %(program_name)s) 
autorestart=true      ; whether/when to restart (default: unexpected) 
startsecs=1        ; number of secs prog must stay running (def. 1) 
stopwaitsecs=10       ; max num secs to wait b4 SIGKILL (default 10) 
stdout_logfile=/var/log/myapp.log  ; stdout log path, NONE for none default AUTO 
stderr_logfile=/var/log/myapp.err.log ; stderr log path, NONE for none default AUTO 

더 많은 정보 : NodeJS process management at Brin.gr 그냥이 같은 관리자 구성 파일을 작성 응용 프로그램 각각에 대해

.