Trên Linux, tôi có thể giữ một chương trình chạy ở chế độ nền ngay cả sau khi tôi ngắt kết nối không?


4

Nếu tôi đăng nhập vào máy Linux từ xa, tôi biết tôi có thể tạm dừng một quá trình (cntr-z) và di chuyển nó sang nền (bg 1) nhưng nếu tôi ngắt kết nối với máy, quá trình sẽ dừng lại.

Có cách nào tôi có thể để nó ở chế độ nền và có nó ở đó khi tôi đăng nhập lại không? Đây là một quá trình chạy rất dài.

Trên Ubuntu, đăng nhập qua SSH.

Câu trả lời:


9

Điều này là do chương trình của bạn cần thiết bị đầu cuối để chạy, bạn có thể sử dụng GNU Screen để tạo một thiết bị đầu cuối ảo để chương trình sẽ tiếp tục chạy ngay cả khi bạn ngắt kết nối.
chỉ cần chạy screen your_program_name, bạn có thể đóng màn hình crtl-a-dlại rồi mở lại sauscreen -rx


Ước gì tôi có thể chấp nhận câu trả lời của bạn nhưng tôi đã đăng nhập và đăng nhập và bây giờ không thể thực sự yêu cầu câu hỏi. = x Nhưng cảm ơn bạn, hoạt động hoàn hảo.
Erik

6

Ít linh hoạt hơn màn hình nohupdisown.

nohup là một chương trình và bạn phải bắt đầu quá trình chạy dài với nó như thế này:

$ nohup longjob --options-for-longjob

nó sẽ khiến công việc dài của bạn chạy ở chế độ nền và không được gắn vào bất kỳ thiết bị đầu cuối nào (điều đó có nghĩa là bạn sẽ không nhận được bất kỳ đầu ra nào từ nó trên màn hình và sẽ không thể nhập trực tiếp vào nó từ bàn phím)

disownlà một bash dựng sẵn có thể ngắt kết nối một công việc chạy dài sau khi bạn bắt đầu nó. Trang bash man của tôi nói

disown [-ar] [-h] [jobspec ...]
Không có tùy chọn, mỗi jobspec sẽ bị xóa khỏi bảng công việc đang hoạt động. Nếu tùy chọn -h được đưa ra, mỗi jobspec sẽ không bị xóa khỏi bảng, nhưng được đánh dấu để SIGHUP không được gửi đến công việc nếu shell nhận được SIGHUP. Nếu không có jobspec nào xuất hiện và cả tùy chọn -a hay -r đều không được cung cấp, công việc hiện tại sẽ được sử dụng. Nếu không có jobspec nào được cung cấp, tùy chọn -a có nghĩa là loại bỏ hoặc đánh dấu tất cả các công việc; tùy chọn -r không có đối số spec- spec giới hạn hoạt động để chạy các công việc. Giá trị trả về là 0 trừ khi một jobspec không chỉ định một công việc hợp lệ.

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.