Cách chạy lệnh Linux trong nền

Các lệnh Linux là một cách tuyệt vời để tương tác với hệ thống bằng cách sử dụng Terminal. Tuy nhiên, đôi khi có thể mất một lúc để hoàn thành nhiệm vụ trong tầm tay. Điều này buộc người dùng phải đợi một khoảng thời gian đáng kể hoặc tạo một shell mới hoàn toàn.

May mắn thay, bạn có thể chạy các lệnh Linux ở chế độ nền bằng cách làm theo một số phương pháp đơn giản. Phần còn lại của bài viết này minh họa một số phương pháp này.

1. Thêm ký hiệu & sau lệnh

Cách dễ nhất để chạy lệnh Linux trong nền là thêm ký hiệu & sau lệnh. Ví dụ, nếu bạn khởi động trình soạn thảo gedit từ Terminal của mình, bạn không thể sử dụng shell cho đến khi đóng trình chỉnh sửa. Tuy nhiên, khi bạn thêm một ký hiệu & vào lệnh của mình, bạn sẽ có thể sử dụng shell ngay lập tức.

gedit &

2. Sử dụng bg để gửi các lệnh đang chạy sang nền

Đôi khi bạn chạy một lệnh và nhận ra rằng phải mất nhiều thời gian hơn nữa để hoàn thành. Bạn có thể dễ dàng gửi các lệnh này sang nền bằng cách nhấn tổ hợp phím Ctrl + Z và sau đó sử dụng lệnh bg. Ctrl + Z dừng quá trình đang chạy và bg đưa nó vào nền.

Sử dụng bg để gửi các lệnh đang chạy sang nền
Sử dụng bg để gửi các lệnh đang chạy sang nền

Bạn có thể xem danh sách tất cả mọi công việc chạy trong nền bằng cách nhập các công việc vào Terminal. Sử dụng lệnh fg để quay lại tác vụ đang chạy.

3. Gửi lệnh sang nền với nohup

Lệnh nohup trong Linux cho phép admin chạy các lệnh Terminal miễn nhiễm với các tín hiệu HUP hoặc Hang Up. Bạn có thể chạy các lệnh Linux trong nền bằng cách sử dụng nohup.

Ví dụ dưới đây chạy quét cổng Nmap trong nền.

nohup sudo nmap -sS --top-ports=15 192.168.1.1/24

Một lợi ích chính của nohup là các lệnh của bạn sẽ chạy ngay cả khi bạn thoát khỏi shell. Hơn nữa, nó tạo ra các file nhật ký ghi lại quá trình thực thi. Tìm nohup.out trong thư mục hiện tại hoặc bên trong $HOME.

Gửi lệnh sang nền với nohup
Gửi lệnh sang nền với nohup

4. Chạy lệnh trong nền bằng cách sử dụng tính năng chuyển hướng hệ thống

Bạn cũng có thể chạy các lệnh trong nền trên Linux bằng cách sử dụng tính năng chuyển hướng hệ thống. Ví dụ, nếu bạn chạy lệnh ping dưới đây, shell sẽ chạy nó ở chế độ nền và ngay lập tức trả lại lời nhắc Terminal:

ping -c5 8.8.8.8 >output.log 2>&1 &

Tại đây, đầu ra của lệnh ping được chuyển hướng đến file output.log. Bạn có thể thay thế nó bằng /dev/null nếu bạn muốn loại bỏ kết quả. 2>&1 yêu cầu bash chuyển hướng bất kỳ lỗi nào đến cùng một file. Cuối cùng & báo hiệu bash chạy lệnh này trong nền.

Chạy lệnh trong nền bằng cách sử dụng tính năng chuyển hướng hệ thống
Chạy lệnh trong nền bằng cách sử dụng tính năng chuyển hướng hệ thống

5. Đặt lệnh Linux chạy trong nền bằng cách sử dụng lệnh disown

Lệnh disown trong Linux giúp bạn dễ dàng chạy các lệnh ở chế độ nền. Đầu tiên, bạn cần gửi tác vụ trong nền bằng toán tử &. Sau đó, gõ disown để tách nó ra khỏi shell:

gedit &
disown

Một ưu điểm chính của disown là, giống như nohup, hệ thống sẽ không dừng tác vụ khi bạn đóng shell hoặc đăng xuất.

Đặt lệnh Linux chạy trong nền bằng cách sử dụng lệnh disown
Đặt lệnh Linux chạy trong nền bằng cách sử dụng lệnh disown

6. Chạy các lệnh Linux trong nền bằng Tmux

Tmux là một multiplexer (mạch ghép kênh hay MUX) mạnh mẽ, cho phép chạy nhiều phiên Terminal trong một cửa sổ duy nhất. Học Tmux là một lựa chọn tuyệt vời cho những người chưa quen với công cụ này. Tmux giúp chạy các lệnh trong nền trên Linux dễ dàng.

tmux new -d 'ping -c 10 8.8.8.8 > output.log'
Chạy các lệnh Linux trong nền bằng Tmux
Chạy các lệnh Linux trong nền bằng Tmux

Khi bạn chạy lệnh tmux ở trên, nó sẽ thực hiện lệnh ping trong một shell riêng biệt và giữ nó ở chế độ nền. Bạn có thể thực thi bất kỳ lệnh Linux nào trong nền bằng phương pháp này.

Thứ Hai, 31/05/2021 10:30
56 👨 132
0 Bình luận
Sắp xếp theo