Làm thế nào để giữ cho chương trình chạy sau khi ngắt kết nối SSH? [bản sao]


15

Các bản sao có thể có:
Giữ chương trình chạy sau khi đóng bàn điều khiển, sau khi chương trình đã bắt đầu
Làm thế nào tôi có thể sử dụng ssh để chạy lệnh trên máy Unix từ xa và thoát trước khi lệnh hoàn thành?

Chào!

Tôi muốn chạy chương trình từ máy tính xách tay của mình bằng kết nối SSH đến máy chủ từ xa. Vấn đề là tôi đang về nhà với cuốn sổ của mình :)

Làm thế nào để giữ cho chương trình chạy?

Câu trả lời:


22

"Màn hình" rất có thể là những gì bạn muốn. Nó cho phép bạn ngắt kết nối và kết nối lại theo ý muốn. Sau khi bạn SSH vào máy chủ, hãy chạy màn hình trước khi bắt đầu chương trình của bạn. Ctrl-a, Ctrl-d sẽ ngắt kết nối bạn (chương trình tiếp tục bất kể). Khi bạn trở về, 'screen -r' sẽ kết nối lại với bạn như thể bạn chưa bao giờ đi xa.

Hãy nghĩ về nó như VNC hoặc RDP cho các thiết bị đầu cuối văn bản. Tìm kiếm "sử dụng màn hình" cho nhiều hướng dẫn.

Chỉnh sửa để thêm: Những ngày này tôi muốn giới thiệu tmux thay vào đó, đặc biệt nếu được sử dụng cùng với tập lệnh tmx . Khả năng phân chia các tấm (theo chiều dọc và chiều ngang) và thay đổi kích thước của chúng là một lợi ích rất lớn trên màn hình.


5
Ngẫu nhiên, màn hình sẽ tiếp tục chạy nếu kết nối của bạn hết thời gian hoặc bất cứ điều gì tương tự trong khi bạn vẫn gắn bó với nó. Một số lệnh hữu ích: ctrl + a, ctrl + d = tách khỏi màn hình, screen -r = gắn lại vào màn hình, screen -x = đính kèm vào màn hình ở chế độ dùng chung (có thể được sử dụng để giảng dạy, v.v. cùng màn hình), ctrl + a, esc = enter chế độ cuộn (nhấn q để thoát lại). LƯU Ý: Nếu bạn khởi động màn hình bằng cách gõ "chương trình màn hình", nó sẽ ngay lập tức khởi chạy chương trình trên màn hình, nhưng nếu nó thoát ra, bạn sẽ mất bộ đệm. Gõ chỉ "màn hình" sẽ cung cấp cho bạn một thiết bị đầu cuối liên tục.

Chris, cũng tnx cho câu trả lời hữu ích.

18

nohup là một lệnh sẽ chạy một lệnh khác và làm cho nó miễn nhiễm với tín hiệu "gác máy".

Bạn chạy nó đơn giản như:

nohup command

nhưng bạn cũng sẽ cần phải chuyển hướng stdin, stdout và stderr. Xem trang người đàn ông để biết thêm.

Bạn cũng có thể muốn đặt nó trong nền.

Bạn cũng sẽ cần phải biết killlệnh để cuối cùng giết nó.


Vâng, tnx rất nhiều! thật dễ dàng))

Đây là cái mà tôi sử dụng. Rất rất dễ dàng. Sử dụng teeđể chuyển hướng stdin, stdout và stderr.
Ritwik Bose
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.