2012-06-25 7 views
6

PuTTyを使用して私たちのUbuntuプロダクションサーバに接続します。SSHクライアント(PuTTy)が終了した後にRailsコンソールからrailsコマンドを実行する方法

Solrを使用して特定のモデルを再インデックスする必要があります。私は、Rails Console、すなわちModelname.reindexからreindexコマンドを実行したい(これはrakeタスクよりも速く実行されるように思われる)。

膨大な量のデータを調べているが、この索引付けは期待されている数時間かかる。

このタスクをレールコンソールで開始できるようにしたいのですが、PuTTyを終了してもこのタスクを実行し続ける必要があります。これを行う方法?

Linux: Prevent a background process from being stopped after closing SSH clientはnohupを示唆していますが、それをレールコンソールで使用できるかどうかはわかりません。

答えて

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は、スクリーンのようなものを使用してセッションから切り離す必要があります。

関連する問題