2012-06-25 5 views
6

PuTTy를 사용하여 우분투 프로덕션 서버에 연결합니다.SSH 클라이언트 (PuTTy)가 닫힌 후 Rails Console에서 레일스 명령을 어떻게 닫을 수 있습니까?

Solr을 사용하여 특정 모델을 다시 인덱싱하고 싶습니다. 레일스 콘솔, 즉 Modelname.reindex에서 reindex 명령을 실행하고 싶습니다. (레이크 작업보다 빨리 실행되는 것처럼 보입니다.)

그러나 방대한 양의 데이터를보고 있으며이 인덱싱은 예상됩니다 몇 시간 걸릴.

레일스 콘솔에서이 작업을 시작할 수 있고 PuTTy를 종료해도 계속 실행해야합니다. 이 작업을 수행하는 방법?

Linux: Prevent a background process from being stopped after closing SSH client은 nohup을 제안하지만 레일 콘솔과 함께/how를 사용할 수 있는지는 알 수 없습니다.

답변

9

사용 sudo apt-get install screen를 사용하여 세션을 얻을 수 있습니다. 그런 다음 screen을 사용하여 실행하십시오. 이제 별도의 콘솔 창이있어서 Ctrl + A을 누른 다음 D을 사용하여 분리 할 수 ​​있습니다. 퍼티를 닫으면 screen - 세션이 종료되지 않습니다. 나중에 다시 로그인하는 경우 screen -r을 사용하여 세션을 재개 할 수 있습니다.

은 요약하면 :

> sudo apt-get install screen 
> screen 
# pops up a new shell 
> rails c 
# run your reindex operation 
# press Ctrl + A, then D 
> exit 
# putty closes 

# reconnect using putty 
> screen -r 
# you should be back in your rails console 
+0

얼마나 멋진가! 감사! – Stanley

+0

'화면'에 대한 충분한 말을 할 수 없습니다. 잠시 시간을 할 때'man screen '을보고 그걸로 할 수있는 모든 일을보십시오. –

0

screen 또는 tmux을 사용하면 서버에서 세션을 계속 열어 둘 수 있습니다.

screen을 입력하면 콘솔을 분리해도 세션을 유지하는 터미널 멀티플렉서가 시작됩니다.

콘솔에 다시 연결 한 후에는 다시 screen를 설치 screen -dr

0

당신은 TMUX 또는 화면 같은 것을 사용하고 세션에서 분리해야합니다.