it-swarm-vi.com

Làm cách nào tôi có thể có nhiều phiên cuối thông qua một kết nối SSH?

Tôi có một phiên bản máy chủ Ubuntu đang chạy và tôi có thể SSH vào nó để thực hiện các tác vụ khác nhau. Điều tôi muốn là khả năng SSH vào máy chủ của tôi khởi động một ứng dụng máy chủ và sau đó chuyển sang một phiên "ảo" khác (với cùng một ví dụ SSH) và chạy các cuộc gọi của khách hàng đối với dịch vụ. Khi tôi khởi động dịch vụ, đó là một cuộc gọi chặn, vì vậy tôi không thể chạy các cuộc gọi của khách hàng mà không thực hiện phiên SSH anther.

Tôi đã hy vọng có thể có một cách mượt mà, giống như giao diện người dùng làm với máy tính để bàn ảo.

21
JPrescottSanders

Những gì bạn muốn sử dụng là màn hình hoặc thậm chí tốt hơn là một trình bao bọc thân thiện với người dùng xung quanh màn hình được gọi là byobu.

Màn hình cho phép bạn chạy nhiều phiên thiết bị đầu cuối ảo trong cùng một phiên ssh. A hướng dẫntrang trợ giúp có sẵn.

byob là trình bao bọc cho phép dễ dàng mở màn hình mới bằng phím chức năng đơn giản thay vì tổ hợp phím từ ctrl-a. Nó cũng hiển thị một dòng trạng thái với tất cả các thiết bị đầu cuối ảo mở có thể được đặt tên.

Một tính năng hay khác là tất cả màn hình của bạn có thể duy trì trong khi kết nối ssh của bạn bị ngắt kết nối. Bạn chỉ cần kết nối lại thông qua ssh và gọi byobu và mọi thứ vẫn như trước.

Cuối cùng một số ảnh chụp màn hình của byobu.

24
txwikinger

Màn hình GN là câu trả lời bạn đang tìm kiếm - nhưng nó rất giống Vi. Bạn đã học được rất nhiều lệnh để thiết lập môi trường Màn hình thành công. Đây là một số thứ để giúp bạn bắt đầu. Trước hết bạn sẽ muốn điều này .screenrchttp://paste.ub Ubuntu.com/473764/ lưu nó trên máy chủ từ xa trong thư mục nhà của người dùng. Màn hình cài đặt tiếp theo trên máy từ xa (Sudo apt-get install screen) Tiếp theo bạn sẽ muốn kích hoạt nó ở đây là một số lệnh cho "bắn màn hình lên":

screen - Điều này khá đơn giản. Nó bắt đầu một phiên màn hình mới screen -ls - Liệt kê tất cả các phiên màn hình đang hoạt động. Có, bạn có thể có nhiều thiết bị đầu cuối bên trong nhiều màn hình. SO NGỌT.

Mẫu

screen -ls
There is a screen on:
    16467.pts-0.ubuntu  (08/05/2010 07:47:53 PM)    (Detached)
1 Socket in /var/run/screen/S-marco.

screen -x <pid> - Điều này sẽ tiếp tục phiên màn hình tách rời, IE: screen -x 16467

Khi bạn đang ở trong Màn hình (và bạn đã sử dụng tệp .screenrc mẫu của tôi) Bạn sẽ thấy phần sau dọc phía dưới:

(LOAD) 0$* bash

Đó là tải máy chủ và danh sách tất cả các "tab thiết bị đầu cuối" đang mở. Hiện tại chỉ có một cửa sổ. Nhập một cái gì đó sau đó Nhấn tổ hợp phím này: Ctrl + A phát hành, sau đó nhấn c. Ctrl + A là chuỗi thoát. Tất cả các lệnh được bắt đầu với sự kết hợp này. c đang tạo tab mới. Bạn sẽ nhận thấy chân trang có (LOAD) 0-$ bash 1$* bash cho thấy có một tab khác đang mở và tab hoạt động là số 1. Bạn có thể mở tối đa 60 tab cho mỗi phiên màn hình.

Nếu bạn muốn thoát khỏi màn hình nhưng vẫn để màn hình chạy, hãy sử dụng Ctrl + A sau đó d sẽ tách phiên của bạn. Cuối cùng, bạn có thể đóng các tab bằng cách sử dụng Ctrl + A sau đó k sẽ giết tab đó (nếu nó bị khóa) nhưng thông thường bạn chỉ cần gõ exit như thể bạn đang ở trong một thiết bị đầu cuối và nó sẽ đóng tab đó.

Cuối cùng, để liệt kê tất cả các cửa sổ đang mở, bạn có thể nhập Ctrl + A sau đó ".

Có rất nhiều tùy chọn có sẵn cho Màn hình mà bạn nên rót qua tệp man để biết thêm. Có một số nhược điểm. Bạn không thể sử dụng thanh cuộn của mình trong Màn hình, bạn phải sử dụng các điều khiển bộ đệm để quay lại, tuy nhiên ở trên là đủ để bạn bắt đầu xem liệu đây có phải là một tùy chọn khả thi hay không. Một điều tuyệt vời về điều này và một cái gì đó tôi đã xử lý rất nhiều với tư cách là Quản trị viên hệ thống - kết nối mạng. Nếu mạng của bạn ngừng hoạt động, bạn sẽ không bị mất! Vì màn hình đang chạy trên máy chủ. Bạn chỉ cần đăng nhập lại qua SSH sau đó screen -lsscreen -x trở lại phiên của bạn.

5
Marco Ceppi

Nếu bạn đang sử dụng Ubuntu Server Edition byobu chắc chắn là lựa chọn tốt nhất của bạn. Hướng dẫn máy chủ Ubuntu có một số tài liệu hữu ích .

Nói chung, nó dễ học và dễ sử dụng hơn screen và nó được cài đặt theo mặc định.

1
jbowtie

Tôi sử dụng Emacs, vì vậy cấu hình mặc định của màn hình khiến cuộc sống của tôi trở nên khó khăn.

$ cat /home/cjac/.screenrc 

thoát ^

Hãy thử điều đó!

0
cjac