Trong hệ điều hành Linux, việc chạy các tác vụ ngầm (background tasks) là một kỹ thuật phổ biến giúp tận dụng tài nguyên hệ thống hiệu quả mà không làm gián đoạn công việc chính của bạn. Hôm nay VNLF sẽ hướng dẫn bạn cách thực hiện điều này
1. Sử Dụng Dấu &
Dấu &
cho phép bạn chạy một lệnh ở chế độ nền. Điều này có nghĩa là lệnh đó sẽ tiếp tục chạy mà không làm gián đoạn terminal của bạn.
Cách thực hiện
Giả sử bạn muốn chạy một lệnh dài như:
sleep 60
Thay vì để terminal bị chiếm dụng, bạn có thể chạy nó trong chế độ nền:
sleep 60 &
Sau khi chạy, bạn sẽ thấy một thông báo như sau:
[1] 12345
[1]
là ID của job trong danh sách các lệnh đang chạy ngầm.12345
là PID (Process ID) của tiến trình.
Quản lý job với &
- Liệt kê các job ngầm: Sử dụng lệnh
jobs
để xem danh sách các lệnh đang chạy ngầm. - Đưa job về chế độ foreground: Sử dụng
fg
kèm theo số job:fg %1
- Dừng hoặc kill job: Dùng
kill
để dừng job theo PID:kill 12345
2. Sử Dụng nohup
nohup
(no hang up) cho phép bạn chạy lệnh mà không bị gián đoạn ngay cả khi bạn thoát terminal. Đây là cách lý tưởng để chạy các tác vụ dài hạn như tải file, xử lý dữ liệu lớn, hoặc các server.
Cách thực hiện
Ví dụ, bạn muốn chạy một lệnh như:
python script.py
Để nó tiếp tục chạy kể cả khi bạn đóng terminal, sử dụng nohup
:
nohup python script.py &
- Lệnh này sẽ tự động ghi output vào file
nohup.out
trong thư mục hiện tại. - Nếu muốn lưu log vào file khác, chỉ định đường dẫn:
nohup python script.py > output.log 2>&1 &
Kiểm tra trạng thái
Sử dụng ps
để kiểm tra tiến trình:
ps aux | grep python
Hoặc, dùngtop
hoặchtop
để theo dõi chi tiết tài nguyên tiến trình.
3. Kiểm Tra và Quản Lý Các Lệnh Chạy Ngầm
Liệt kê các tiến trình
jobs
: Liệt kê các lệnh chạy ngầm trong shell hiện tại.ps
: Hiển thị danh sách tiến trình. Ví dụ:ps -ef | grep sleep
pgrep
: Tìm PID của tiến trình theo tên:pgrep -f script.py
Quản lý tiến trình
- Tạm dừng tiến trình: Dùng
kill -STOP
theo PID:kill -STOP 12345
- Tiếp tục tiến trình: Dùng
kill -CONT
theo PID:kill -CONT 12345
- Kết thúc tiến trình: Dùng
kill
hoặckill -9
để ép buộc dừng:kill -9 12345
Theo dõi tiến trình
top
hoặchtop
: Các công cụ giao diện trực quan để giám sát CPU, RAM và các tiến trình.watch
: Lệnh để theo dõi một lệnh cụ thể. Ví dụ:watch -n 2 ps aux | grep script.py
Leave a Reply