Tiếp tục tác vụ / công việc nền SSH khi đóng SSH


27

Tôi có câu hỏi tương tự như ở đây nhưng thậm chí còn hơn thế.

Nếu tôi đăng xuất / thoát kết nối SSH, tôi cần chương trình của mình chạy ở chế độ nền. Trước khi thoát, tôi gõ bgjobskiểm tra tác vụ chạy nền, nhưng sau khi thoát SSH, chương trình không chạy, nó sẽ đóng khi tôi đóng cửa sổ SSH.

Tôi có thể làm gì nếu tôi muốn chương trình của mình vẫn chạy sau khi đóng cửa sổ SSH? Tôi sử dụng nohup screennhưng nó cũng không hoạt động, hoặc tôi đang thiếu một cái gì đó?


Chào mừng bạn đến với Siêu người dùng! Xin đừng đặt câu trả lời của bạn vào câu hỏi. Gửi nó dưới dạng câu trả lời dưới đây một khi bạn có thể (trong khoảng 7 giờ) bằng cách sử dụng nút Trả lời câu hỏi của bạn . Cảm ơn bạn. (Cũng lưu ý rằng không có cần phải thêm <br/>s để bài viết của bạn chỉ cần thực hiện các khoản khi cần thiết Và trong khi bạn đang ở đó, hãy sử dụng vốn đúng Nó làm cho bài viết của bạn dễ đọc hơn....)
slhck

BTW không cần sử dụng bghoặc nohupkhi sử dụng screen. Ngoài ra câu hỏi này có liên quan.
justbrowsing

bạn thực hiện kiểm tra chủ đề này @ stack overflow stackoverflow.com/questions/285015/ từ
Ashildr

Câu trả lời:


46

Khi bạn sử dụng, screenbạn cần tách bằng CTRL+A+ Dtrước khi thoát ssh.

Ngoài ra, nếu bạn muốn chạy một quy trình trực tiếp với màn hình, bạn có thể sử dụng

screen -dmSL [session name] [commands]
  • -d bắt đầu một phiên màn hình và ngay lập tức tách khỏi nó
  • -m buộc tạo một phiên màn hình mới
  • -S cho phép bạn đặt tên cho phiên
  • -L bật đăng nhập vào ~/screenlog.0

thí dụ:

screen -dmSL workstuff myscript.sh

Sau đó, bạn có thể:

tiếp tục sử dụng sau screen -x workstuff

hoặc là

kiểm tra tệp nhật ký less -r ~/screenlog.0


14

Sử dụng tmux. Tôi thậm chí không chắc screenlà thậm chí còn đang được phát triển tích cực. Đó là một thứ ưu tiên, nhưng là một người sử dụng tmux, tôi có thể làm chứng rằng nó được thiết lập trong khoảng 5 phút và hoạt động hoàn hảo.

Trên hệ thống dựa trên Debian (trên máy từ xa):

sudo apt-get install tmux

sau đó nhập tmuxđể nhập, chạy bất kỳ quy trình nào bạn cần và nhấn Ctrl+ Bsau đó D(điều này rời khỏi phiên tmux). Sau đó, bạn có thể đăng xuất khỏi SSH.

Khi bạn cần quay lại / kiểm tra lại, hãy khởi động SSH và nhập tmux attach. Nó sẽ đưa bạn trở lại tmuxphiên của bạn .

tmuxcó nhiều khả năng hơn, như chi tiết ở đây. Nhưng, điều này sẽ giải quyết vấn đề ngay lập tức của bạn.

Chúc may mắn!


7

Cuối cùng, tôi đã giải quyết nó bằng cách sử dụng screen:

Trong chế độ màn hình, tách nó ra bằng cách sử dụng CtrlAD. Sau đó, bạn có thể đóng cửa sổ SSH.


5

sử dụng nohup: Lệnh đầu tiên bên dưới khởi động abcd chương trình trong nền theo cách mà đăng xuất tiếp theo không dừng nó.

$ nohup abcd &

$ thoát

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.