我使用PuTTy连接到我们的Ubuntu生产服务器。
我想使用Solr重新索引特定模型。我想从Rails控制台运行reindex命令,即Modelname.reindex(因为它似乎比rake任务运行得快。)
然而,我们正在查看大量数据,预计此索引需要几个小时。
我希望能够在rails控制台中启动此任务,即使退出PuTTy,它仍应继续运行。怎么做?
Linux: Prevent a background process from being stopped after closing SSH client建议nohup,但我不知道是否/如何使用rails控制台。
答案 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)
如果您只需键入screen
,即使您断开控制台连接,终端多路复用器也会启动,这将保持会话。
重新连接到控制台后,您可以使用screen -dr
答案 2 :(得分:0)
您应该使用类似tmux或屏幕的内容并从会话中分离。