Câu 1ps hiển thị gì khi bạn chạy nó?
Kiểm tra và dừng tiến trình — ps / kill
Học cách liệt kê tiến trình đang chạy bằng ps, kiểm tra PID của chính mình bằng $$, và dừng một tiến trình bạn đẩy vào nền bằng & với kill — thực hành ngay trên terminal trong trình duyệt.
Xem các tiến trình đang chạy — ps
Tiến trình là mỗi chương trình đang chạy riêng lẻ.
ps là lệnh liệt kê các tiến trình đang chạy ngay lúc này.
Mỗi tiến trình được gán một con số duy nhất gọi là PID (process ID), dùng làm dấu mốc khi bạn dừng nó sau này.
Khi danh sách dài, hãy pipe nó vào grep, như ps | grep sleep, để thu hẹp tiến trình theo tên.
PID duy nhất. ps liệt kê các tiến trình đang chạy này.| Lệnh | Ý nghĩa |
|---|---|
ps | Liệt kê các tiến trình đang chạy cùng PID |
ps | grep name | Thu hẹp tiến trình theo tên |
echo $$ | Hiển thị PID của chính shell hiện tại |
cmd & | Chạy một lệnh ở nền |
Bạn có thể lấy ra PID của chính shell bằng biến đặc biệt $$.
$$ là một biến đặc biệt được shell điền bằng PID của chính nó.
Chạy echo $$ hiển thị con số của shell bạn đang gõ, và bạn sẽ thấy cùng con số đó trong danh sách ps.
ps liệt kê PID của các tiến trình đang chạy; echo $$ hiển thị PID của shell hiện tại.ps # danh sách tiến trình đang chạy (cùng PID)
echo $$ # PID của chính shell này
ps -ef # danh sách chi tiết hơn (định dạng tùy môi trường)
Chạy nền và dừng — & và kill
Thêm & vào cuối một lệnh sẽ chạy nó ở nền, cho phép bạn chuyển sang thao tác tiếp theo mà không cần đợi nó kết thúc.
sleep 30 & chạy một tiến trình chỉ chờ, không làm gì trong 30 giây, ở nền, nên nó rất hợp để luyện cách dừng một tiến trình.
Để dừng một tiến trình chạy nền, hãy truyền PID của nó cho kill.
Shell hiển thị PID ngay sau khi bạn khởi động nó bằng &, và bạn cũng có thể kiểm tra nó trong danh sách ps.
Truyền PID cho kill gửi một tín hiệu kết thúc tới tiến trình đó.
Với một tiến trình không dừng bằng kill PID thông thường, hãy gửi tín hiệu buộc thoát bằng kill -9 PID.
| Lệnh | Tín hiệu gửi đi | Dùng khi |
|---|---|---|
kill PID | SIGTERM (yêu cầu thoát) | Dừng thông thường; cho tiến trình dọn dẹp |
kill -9 PID | SIGKILL (buộc thoát) | Buộc bỏ một tiến trình không chịu dừng |
&, tìm PID bằng ps, và kết thúc tiến trình đó bằng kill.Đưa cho kill đúng PID
kill gửi một tín hiệu kết thúc tới tiến trình có PID bạn truyền.
Nhập sai con số sẽ dừng một tiến trình khác, nên hãy kiểm tra PID đích trong danh sách ps trước khi chạy.
Về kill trong môi trường này
Trong môi trường trình duyệt này, truyền PID cho kill có thể không dừng tiến trình giống như trên hệ thống thật, và bạn có thể thấy No such process.
Trong khóa học này bạn học dạng của lệnh kill PID / kill -9 PID.
Trên một server thật, quy trình kiểm tra PID bằng ps và dừng nó bằng kill hoạt động đúng như được trình bày.
sleep 60 & # chạy một tiến trình chờ 60 giây ở nền
ps # tìm PID của sleep trong danh sách
kill 123 # truyền PID bạn tìm được (vd 123) để kết thúc nó
Kiểm tra kiến thức
Hãy trả lời từng câu hỏi một.
Câu 2echo $$ hiển thị gì?
Câu 3Điều gì xảy ra khi bạn thêm & vào cuối một lệnh?