在SSH客户端(PuTTy)关闭后如何从Rails控制台运行rails命令

时间:2012-06-25 13:55:19

标签: ruby-on-rails ubuntu solr putty sunspot-solr

我使用PuTTy连接到我们的Ubuntu生产服务器。

我想使用Solr重新索引特定模型。我想从Rails控制台运行reindex命令,即Modelname.reindex(因为它似乎比rake任务运行得快。)

然而,我们正在查看大量数据,预计此索引需要几个小时。

我希望能够在rails控制台中启动此任务,即使退出PuTTy,它仍应继续运行。怎么做?

Linux: Prevent a background process from being stopped after closing SSH client建议nohup,但我不知道是否/如何使用rails控制台。

3 个答案:

答案 0 :(得分:10)

使用sudo apt-get install screen安装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

答案 1 :(得分:0)

您可以使用screentmux来保持会话在服务器上打开。

如果您只需键入screen,即使您断开控制台连接,终端多路复用器也会启动,这将保持会话。

重新连接到控制台后,您可以使用screen -dr

恢复会话

答案 2 :(得分:0)

您应该使用类似tmux或屏幕的内容并从会话中分离。