2012-06-25 26 views
6

Tôi kết nối với máy chủ sản xuất Ubuntu bằng PuTTy.Cách giữ lệnh rails từ Rails Console chạy sau khi SSH Client (PuTTy) đóng

Tôi muốn kết nối lại một Mô hình cụ thể bằng Solr. Tôi muốn chạy lệnh reindex từ Rails Console, tức là Modelname.reindex (vì điều này dường như chạy nhanh hơn tác vụ rake.)

Tuy nhiên, chúng ta đang xem xét một khối lượng lớn dữ liệu và việc lập chỉ mục này được mong đợi để mất một vài giờ.

Tôi muốn có thể bắt đầu tác vụ này trong bảng điều khiển đường ray và nó sẽ tiếp tục chạy ngay cả khi tôi thoát khỏi PuTTy. làm như thế nào?

Linux: Prevent a background process from being stopped after closing SSH client đề xuất nohup, nhưng tôi không thấy liệu/làm thế nào có thể được sử dụng với bảng điều khiển đường ray.

Trả lời

9

Sử dụng sudo apt-get install screen để cài đặt screen. Sau đó, chạy nó bằng cách sử dụng screen. Bây giờ bạn có một cửa sổ bảng điều khiển riêng biệt có thể được tách ra bằng cách sử dụng Ctrl + A, sau đó D. Đóng putty sẽ không kết thúc của bạn screen -session. Nếu bạn đăng nhập lại vào bất kỳ thời điểm nào sau này, bạn có thể tiếp tục các phiên sử dụng screen -r.

Để tóm tắt:

> 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

Điều này thật thú vị! Cảm ơn! – Stanley

+0

Không thể nói đủ các từ tốt về 'màn hình'. Hãy nhìn vào 'màn hình người đàn ông' khi bạn có một giây và xem tất cả những điều bạn có thể làm với nó. –

0

Việc bạn có thể làm là sử dụng screen hoặc tmux để giữ phiên của bạn mở trên máy chủ.

Nếu bạn chỉ cần nhập screen bộ đa ghép kênh sẽ bắt đầu sẽ giữ phiên ngay cả khi bạn ngắt kết nối bảng điều khiển của mình.

Khi bạn kết nối lại với giao diện điều khiển bạn có thể nhận được phiên trở lại sử dụng screen -dr

0

Bạn nên sử dụng một cái gì đó giống như tmux hoặc màn hình và tách từ phiên.

Các vấn đề liên quan