2012-06-25 3 views
6

Я подключаюсь к нашему серверу Ubuntu, используя PuTTy.Как сохранить команду rails из Rails Console, запущенной после закрытия SSH-клиента (PuTTy)

Я хочу переопределить конкретную модель с помощью Solr. Я хочу запустить команду reindex из консоли Rails, т. Е. Modelname.reindex (так как это работает быстрее, чем задача рейка.)

Мы, однако, смотрим на огромный объем данных, и эта индексация ожидается занять несколько часов.

Я хочу, чтобы эта задача выполнялась в консоли rails, и она должна продолжать работать, даже если я выйду из PuTTy. Как это сделать?

Linux: Prevent a background process from being stopped after closing SSH client предлагает nohup, но я не вижу, можно ли/как это использовать с консолью рельсов.

ответ

9

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 
+0

Как здорово это! Благодаря! – Stanley

+0

Достаточно хороших слов нельзя сказать о 'screen'. Взгляните на экран «человек», когда у вас есть секунда, и посмотрите все, что вы можете с ним сделать. –

0

Что вы можете сделать, это использовать screen или tmux, чтобы ваша сессия открывалась на сервере.

Если вы просто наберете screen, то будет запущен терминал мультиплексора, который будет поддерживать сеанс, даже если вы отключите консоль.

После того, как вы подключитесь к консоли вы можете получить сеанс назад с помощью screen -dr

0

Вы должны использовать что-то вроде tmux или экран и отключаться от сеанса.

 Смежные вопросы

  • Нет связанных вопросов^_^