Home » » Quản trị Process trên hệ điều hành Linux

Quản trị Process trên hệ điều hành Linux

Written By Giai phap ma nguon mo on Wednesday, September 14, 2011 | 10:49 PM

Khi chúng ta thực hiện một câu lệnh hoặc một công việc sẽ sinh ra một process.
Mỗi một process bắt đầu được đánh số bằng một số ID duy nhất để nhận diện process gọi là PID.

Câu lệnh PS
Để xem các process và PID chúng ta sử dụng câu lệnh ps. Lệnh ps sẽ hiện thị tất cả các process hiện tại trên hệ thống. Thông tin hiện thị ra màn hình của lệnh ps được thiết lập với nhiều lựa chọn (các option).

Ví dụ chúng ta sử dụng câu lệnh ps để hiển thị tất cả các process trên hệ thống với option -e, hiện thị tất cả các process ra màn hình ở định dạng đầy đủ với option -f và rất nhiều option khác chúng ta có thể xem bằng lệnh ps - - help. Chúng ta có thể kết hợp nhiều option với nhau khi thực hiện câu lệnh process. Ví dụ chúng ta muốn hiện thị tất cả các process trên hệ thống và thông tin khi hiển thị ra màn hình được hiển thị ở dạng đầy đủ, chúng ta dùng lệnh ps -ef

Zoom in (real dimensions: 661 x 455)


Câu lệnh TOP
TOP có chức năng giống lệnh ps tuy nhiên có ưu điểm hơn lệnh ps là hiển thị các process trên hệ thống theo thời gian thực, tuy nhiên lại có nhược điểm làm CPU của hệ thống phải xử lý nhiều. Thông tin hiển thị của lệnh TOP được sắp xếp theo lưu lượng sử dụng CPU, lưu lượng sử dụng bộ nhớ trên hệ thống như RAM, SWAP sau đó là các process đang chạy trên hệ thống.


Câu lệnh KILL
Khi chúng ta muốn dừng một process nào đó đang chạy trên hệ thống chúng ta sử dụng câu lệnh KILL.

Cú pháp của lệnh KILL : kill -s <signal> process hoặc
kill -<signal> process

Trong đó :
Process là tên của process hoặc PID. Chỉ có người dùng root có quyền kill các process sở hữu bởi người dùng khác trên hệ thống.

Signal là tín hiệu gửi đến process. Tín hiệu mặc định gửi đến một process là tín hiệu TERM. Chúng ta có thể sử dụng các tín hiệu khác nhau để kill một process.

Có 3 mức tín hiệu phổ biến được sử dụng với câu lệnh KILL đó là các mức tín hiệu 1, 9 và 15.

Mức tín hiệu 1 (SIGHUP) có chức năng dừng process và khởi động lại process. Như vậy nếu chúng ta muốn khởi động lại một process nào đó chúng ta sử dụng câu lệnh kill -1 process.

Mức tín hiệu 9 (SIGKILL) là mức tín hiệu cao nhất có chức năng dừng một process ngay lập tức.

Mức tín hiệu 15 (SIGTERM) có chức năng dừng một process. Đây là mức tín hiệu mặc định khi kill một process.

Để xem thông tin về các mức tín hiệu khi kill một process chúng ta sử dụng câu lệnh kill -l.

Hình ảnh


Process chạy ở FOREGROUND và BACKGROUND

Một số process khi chạy chúng sở hữu toàn bộ shell và chỉ thoát khỏi shell khi chúng được hoàn thành. Các process này được gọi là đang chạy ở foreground.

Không có process nào có thể được thực hiện trên shell cho đến khi các process trước đó đã thoát khỏi shell. Các process này được gọi là đang chạy ở background. Khi một process đang chạy ở background, một process khác có thể bắt đầu được chạy trên shell. Việc xác định một process chạy ở foreground hay background phụ thuộc vào process đó và process đó được bắt đầu chạy như thế nào.

Để chạy một process trên shell ở background chúng ta sử dụng cú pháp

<tênprocess> &

Ví dụ : # firefox &

Lúc này process firefox đang được chạy ở background và chúng ta có thể thực hiện một số các câu lệnh khác trên shell mà không làm ảnh hưởng đến process firefox đang chạy.

Chuyển một process đang chạy ở foreground sang background và ngược lại
Để chuyển một process đang chạy ở foreground sang background hoặc chuyển một process đang chạy ở background sang foreground chúng ta sử dụng tổ hợp phím CTRL+Z sau đó sử dụng câu lệnh bg <jobnumber> nếu muốn chuyển sang background hoặc sử dụng câu lệnh fg <jobnumber> nếu muốn chuyển sang foreground.

Ví dụ 1 : Chúng ta chạy firefox ở foreground sau đó chuyển sang background.

Zoom in (real dimensions: 663 x 455)Hình ảnh


Ví dụ 2 : Chúng ta chạy firefox ở background sau đó chuyển sang foreground.

Zoom in (real dimensions: 661 x 457)Hình ảnh


Thay đổi mức độ ưu tiên cho các Process
Khi một process chạy nó được gán một mức độ ưu tiên trên hệ thống. Mức độ ưu tiên mặc định gán cho một process khi chạy trên hệ thống là độ ưu tiên 0.

Số đại diện cho mức độ ưu tiên nằm trong khoảng từ -20 đến +19. Số ưu tiên càng lớn thì process chạy chậm hơn ngược lại số ưu tiên càng nhỏ thì process chạy nhanh hơn. Chỉ có user root mới được quyền giảm mức độ ưu tiên cho một process còn các user khác chỉ được quyền tăng mức độ ưu tiên cho process.

Chúng ta sử dụng câu lệnh NICE để thiết lập mức độ ưu tiên cho một process.

Cú pháp của lệnh NICE : nice priority command

Nếu chúng ta muốn thay đổi mức độ ưu tiên cho một process đang chạy hoặc thiết lập mức độ ưu tiên cho process của người dùng chúng ta sử dụng câu lệnh RENICE

Cú pháp của lệnh RENICE : renice priority option processID

Các option sử dụng với lệnh RENICE

Option -g : Xác định mức độ ưu tiên cho các process được thực thi bởi một số user của một nhóm cụ thể.
Option -u : Xác định mức độ ưu tiên cho các process được thực thi bởi một người dùng cụ thể.
Option -p : Xác định mức độ ưu tiên cho một process cụ thể.

Zoom in (real dimensions: 662 x 456)Hình ảnh

Share this article :

0 comments:

Post a Comment