Chạy chế độ background linux
Thông thường, khi bạn chạy một lệnh trong terminal, bạn phải đợi cho đến khi lệnh kết thúc trước khi bạn có thể nhập lệnh khác. Điều này được gọi là chạy lệnh trong quá trình nền trước hoặc nền trước. Khi một tiến trình chạy ở chế độ nền trước, nó sẽ chiếm shell của bạn và bạn có thể tương tác với nó bằng các terminal. Show Điều gì sẽ xảy ra nếu lệnh mất nhiều thời gian để hoàn thành và bạn muốn chạy các lệnh khác trong thời gian chờ đợi? Bạn có một số tùy chọn theo ý của bạn. Tùy chọn rõ ràng và đơn giản nhất là bắt đầu một phiên shell mới và chạy lệnh trong đó. Một tùy chọn khác là chạy lệnh trong nền. Quy trình nền là một tiến trình / lệnh được bắt đầu từ một terminal và chạy ở chế độ nền, không có sự tương tác từ người dùng. Trong bài này, chúng ta sẽ nói về các tiến trình nền là Linux. Chúng ta sẽ tìm hiểu cách bắt đầu một lệnh ở chế độ nền và cách giữ cho tiến trình chạy sau khi đóng phiên shell. Nội dung chính
Chạy lệnh Linux trong nềnĐể chạy một lệnh trong nền, hãy thêm ký hiệu và ( command & ID lệnh shell (được bao quanh bởi dấu ngoặc vuông) và ID tiến trình sẽ được in trên terminal: [1] 25177 Bạn có thể có nhiều tiến trình chạy nền cùng một lúc. Quá trình nền sẽ tiếp tục ghi thông báo tới terminal mà bạn đã gọi lệnh từ đó. Để loại bỏ command > /dev/null 2>&1 &
Sử dụng jobs -l Đầu ra bao gồm số job, ID tiến trình, trạng thái job và lệnh bắt đầu job: [1]+ 25177 Running ping google.com & Để đưa tiến trình nền lên nền trước, hãy sử dụng fg Nếu bạn có nhiều job nền, hãy bao gồm fg %1 Để
chấm dứt tiến trình nền, hãy sử dụng kill -9 25177 Di chuyển một tiến trình đang chạy sang nềnĐể di chuyển một tiến trình nền trước đang chạy trong nền:
Giữ cho các quá trình nền chạy sau khi thoát khỏi ShellNếu kết nối của bạn bị gián đoạn hoặc bạn đăng xuất khỏi phiên shell, các quá trình nền sẽ bị chấm dứt. Có một số cách để giữ cho quá trình chạy sau khi phiên trình bao tương tác kết thúc. Một cách là xóa job khỏi điều
khiển job của trình bao bằng cách sử dụng disown Nếu bạn có nhiều job nền, hãy bao gồm disown %1 Xác nhận rằng job được xóa khỏi bảng các job đang hoạt động bằng cách sử dụng Một cách khác để giữ cho một tiến trình chạy sau khi thoát khỏi trình bao là sử dụng Lệnh Để chạy một lệnh trong nền bằng cách sử dụng
lệnh nohup command & Đầu ra lệnh được chuyển hướng đến file nohup: ignoring input and appending output to 'nohup.out' Nếu bạn đăng xuất hoặc đóng terminal, quá trình này sẽ không bị kết thúc. Giải pháp thay thếCó một số chương trình cho phép bạn có nhiều phiên tương tác cùng một lúc. ScreenScreen hay GNU Screen là một chương trình ghép kênh đầu cuối cho phép bạn bắt đầu một phiên màn hình và mở bất kỳ số lượng cửa sổ nào (terminal ảo) bên trong phiên đó. Các tiến trình đang chạy trong Màn hình sẽ tiếp tục chạy khi cửa sổ của chúng không hiển thị ngay cả khi bạn bị ngắt kết nối. TmuxTmux là một giải pháp thay thế hiện đại cho màn hình GNU. Với Tmux, bạn cũng có thể tạo một phiên và mở nhiều cửa sổ bên trong phiên đó. Các phiên Tmux liên tục, có nghĩa là các chương trình chạy trong Tmux vẫn tiếp tục chạy ngay cả khi bạn đóng terminal. Phần kết luậnĐể chạy một lệnh trong nền, hãy bao
gồm Khi bạn chạy một lệnh trong nền, bạn không cần phải đợi cho đến khi nó kết thúc trước khi bạn có thể thực thi một lệnh khác. Nếu bạn có bất kỳ câu hỏi hoặc phản hồi nào, hãy để lại bình luận. |