Quản lý Processes trong Linux sử dụng Command Line
21/01/2021 13:56 pm | Lượt xem : 2996
Contents
Giới thiệu
Một process là một thuật ngữ máy tính diễn tả một ứng dụng hoặc một phần mềm. Ví dụ, khi mở trình duyệt như Chrome, chúng ta gọi nó là process, chịu trách nhiệm cho việc chạy / thực thi Chrome, đã được mở và sẽ luôn chạy cho tới ta đóng trình duyệt. Kể cả khi chúng ta thực thi bất kỳ bash command nào, một instance mới của process sẽ xuất hiện. Nếu ta mở cùng ứng dụng 2 lần hoặc nếu bạn hoặc bạn của bạn mở nó trên cùng một máy tính, 2 process sẽ khởi động.
Trong bài hướng dẫn này, chúng tôi sẽ chỉ bạn cách quản lý Processes trên linux qua command line. Việc này là cần thiết nếu bạn thấy có processs đang active chạy chạy hoặc nếu bạn muốn thấy process nào mà user nào đang dùng hoặc chỉ cần biết process nào chiếm nhiều tài nguyên máy tính nhất.
Bạn cần gì?
Trước khi bắt đầu, bạn có cần:
- Truy cập vào command line
Bước 1 — Xem processes trong Linux
Keyword hữu dụng cần học trước khi đọc bài hướng dẫn này:
- PID – Process ID. Mỗi Process có 5 ký tự số. Những số này có thể hết (hết số) và bắt đầu lại, nhưng tại bất kỳ thời điểm nào, không có hơn 1 PID trong hệ thống.
- PPID – Process Parent ID. ID của process mà khởi động process này.
2 commands phổ biến nhất được dùng là xem processes là top và ps. Khác biệt là top được dùng để tương tác nhiều còn ps được dùng trong scripts, kết hợp với các lệnh bash khác hoặc tương tự.
top – command top là đơn giản và phổ biến nhất để hiển thị những process chiếm nhiều tài nguyên máy tính nhất. Khi thực hiện command top trong terminal, chúng ta sẽ thấy cửa sổ tương tự như sau:
top là ứng dụng, sau khi thực hiện lệnh, một layout hiện lên và danh sách process đang liên tục được cập nhật mỗi giây. Layout mới này có thể tương tác với bàn phím. Ví dụ:
+ h or ? – Hiện cửa sổ help với các câu lệnh hữu dụng
+ space – Nhấn space trên bàn phím sẽ cập nhật bảng process ngay lập tức thay vì phải chờ vài giây.
+ f – Thêm trường mới để hiển thị layout hoặc xóa những field nhất định vì vậy bạn sẽ không thấy nó hiển thị. .
+ q – thoát ứng dụng top hoặc mở thêm cửa sổ mới của ứng dụng top. Ví dụ,sau khi dùng feature f.
+ l – Bật/tắt thông tin trung bình tải và thời gian uptime
+ m – Bật/tắt thông tin bộ nhớ
+ P (Shift + p) – Sắp xếp process bằng CPU usage.
+ s – Đổi đột trễ giữa các lần refresh (Bạn sẽ được hỏi bao nhiêu giây).
Với command top, bạn có thể dùng các tùy chọn sau, ví dụ:
+ -d delay – xác định độ trễ
+ -n number – refresh trang bao nhiêu lần, sau đó thoát.
+ -p pid – chỉ hiển thị và giám sát process với đúng process ID được chọn
+ -q – refresh mà không có delay.
Để dùng command hữu ích hơn, hãy xem qua trang này this website.
Cũng vậy, bạn có thể dùng command man top để hiện những thông tin hữu ích khác liên quan đến command này.
Những lợi ích của việc sử dụng command top
Hiển thị processes liên quan đến một user, bạn có thể dùng lệnh sau: top -u user
+ Để xóa processes đang chạy, sau khi vào ứng dụng top, tìm pid của một process bạn muốn tắt, sau đó nhấn nút k (một command bằng keyboard khác). Bạn cũng sẽ được hỏi process ID (điền số ID bạn muốn tắt)
+ Bạn có thể lưu lại cấu hình của top command hiện tại bằng shortcut Shift + W. Settings sẽ được lưu trong /root/.toprc
ps – Một command hữu ích khác để hiển thị processes trong Linux. Sau đây là một số tùy chọn thường được dùng với command ps:
- -e – Hiện tất cả processes.
- -f – Toàn bộ danh sách được format.
- -r – Chỉ hiện những process đang chạy.
- -u – chỉ định username (hoặc nhiều usernames).
- –pid – lọc dựa trên PID.
- –ppid – lọc dựa trên parent PID.
- -C – lọc dựa trên tên và command.
- -o – Hiện thông tin liên quan đến từ khóa cách nhau bởi khoảng trắng hoặc dấu phẩy
Sau đây là một số ví dụ bạn có thể dùng với command “ps”:
- ps -ef – Liệt kê process đang chạy bây giờ. (Một command tương tự là ps aux)
- ps -f -u user1,user2 – Sẽ hiển thị tất cả process dựa rên UID (user id hoặc username).
- ps -f –pid id – Hiển thị tất cả processes dựa trên process ID (pid). Điền PID hoặc PPID thay vào chỗ id. Có thể được dùng với PPID để lọc process dựa trên parent ID.
- ps -C command/name – Lọc Processes dựa trên tên của nó hoặc command
- ps aux –sort=-pcpu,+pmem – Hiển thị process đang dùng nhiều tài nguyên nhất của CPU.
- ps -e -o pid,uname,pcpu,pmem,comm – Được dùng để lọc column được chỉ định.
- ps -e -o pid,comm,etime – Việc này sẽ hiển thị thời gian đã được dùng của process.
Chúng tôi khuyên bạn nên xem qua trang này this để có nhiều thông tin hơn về ps command.
Bước 2 — Tắt và ưu tiên Process
Chúng ta đã biết cách kill process bằng command top ở bước trước. Nhưng bạn cũng có thể làm vậy với command kill. Ví dụ:
kill pid – Nhập số PID để thay thế pid . Nếu process quá khó để kill, hãy dùng use: kill -9 pid.
Một câu lệnh hữu dụng khác để quản lý process là NICE. Cơ bản, nó cho bạn ưu tiên process nào quan trọng trong trường hợp bạn chạy nhiều. Bằng cách này, máy tính sẽ biết process nào quan trong hơn và sẽ chạy chúng trước. Process với độ ưu tiên thấp hơn sẽ chỉ chạy khi nó được yêu cầu (nếu CPU power hết mức sử dụng) Command này có thể cho gia trị từ -20 đến 19. Giá trị càng thấp, thì độ ưu tiên càng cao. Mặc định tất cả process là 0. Cấu trúc của lệnh sẽ như sau:
+ nice -n ‘Nice value’ process name – Ví dụ: nice -n 10 name. Việc này sẽ khởi động một processs mới với độ ưu tiên được chỉ định.
+ Nếu có một vài process đang chạy trên hệ thống, bạn có thể cần giá trị khác hơn giá trị đang có, bạn có thể dùng lệnh: renice ‘Nice value’ -p ‘PID’ – Ví dụ: renice ’10’ -p ‘54125’.
Kết luận
Trong bài hướng dẫn này, bạn đã biết cách quản lý process trong Linux. Có nhiều cách kết hợp lệnh để sử dụng, các bạn hãy tự thử và trải nghiệm.