ruby-on-rails – 如何在SSH客户端(PuTTy)关闭后保持Rails控制台运行rails命令

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

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

但是,我们正在查看大量数据,这种索引预计需要几个小时.

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

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

解决方法

使用sudo apt-get install screen安装屏幕.然后使用屏幕运行它.现在你有一个单独的控制台窗口,可以使用Ctrl A分离,然后是D. Closing putty不会结束你的屏幕会话.如果您稍后重新登录,则可以使用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

相关文章

以下代码导致我的问题: class Foo def initialize(n=0) @n = n end attr_accessor :n d...
这是我的spec文件,当为上下文添加测试“而不是可单独更新用户余额”时,我得到以下错误. require 's...
我有一个拦截器:DevelopmentMailInterceptor和一个启动拦截器的inititializer setup_mail.rb. 但我想将...
例如,如果我有YAML文件 en: questions: new: 'New Question' other: recent: ...
我听说在RSpec中避免它,let,let !,指定,之前和主题是最佳做法. 关于让,让!之前,如果不使用这些,我该如...
我在Rails中使用MongoDB和mongo_mapper gem,项目足够大.有什么办法可以将数据从Mongoid迁移到 Postgres...