Job-control

  • 14 trang
  • file .pdf
TRƯỜNG ĐẠI HỌC CẦN THƠ
KHOA CÔNG NGHỆ THÔNG TIN & TRUYỀN THÔNG
BỘ MÔN MẠNG MÁY TÍNH & TRUYỀN THÔNG
Quản lý tiến trình
Trình bày: TS. NGÔ BÁ HÙNG
Email: [email protected]
Quản lý tiến trình trên Linux
Quản lý tiến trình
• Tiến trình là một chương trình đang thực thi
• Quản lý tiến trình
– Dừng tiến trình (stop)
– Khởi động lại tiến trình (restart)
– Chuyển tiến trình về chế độ chạy nền (background)
07/08/12 Ngô Bá Hùng - Khoa CNTT&TT - ĐH Cần Thơ 2
Quản lý tiến trình trên Linux
Chạy chương trình ở chế độ nền
• Sử dụng ký tự & phía sau tên chương trình ở chế độ
cửa sổ lệnh
– Mở cửa sổ lệnh
– prog-name &
• Ví dụ
– vi &
– gv &
– gedit &
07/08/12 Ngô Bá Hùng - Khoa CNTT&TT - ĐH Cần Thơ 3
Quản lý tiến trình trên Linux
Liệt kê các tiến trình
• Sử dụng lệnh jobs
– Jobs
[1]+ Stopped vi
[2] Running gv &
[3]- Running gedit &
• Lưu ý số thứ và trạng thái của các tiến trình [1], [2],[3]
• Tham khảo đến tiến trình số thứ tự X trong một lệnh
dùng cú pháp %X
• Tiến trình đầu tiên và cuối cùng: %+ và %-
07/08/12 Ngô Bá Hùng - Khoa CNTT&TT - ĐH Cần Thơ 4
Quản lý tiến trình trên Linux
Kích hoạt một tiến trình
• Sử dụng lệnh fg
– Jobs
[1]+ Stopped vi
[2] Running gv &
[3]- Running gedit &
– fg %1
• Chương trình vi sẽ chuyển từ trạng thái dừng sang trạng
thái hoạt động
07/08/12 Ngô Bá Hùng - Khoa CNTT&TT - ĐH Cần Thơ 5
Quản lý tiến trình trên Linux
Thuộc tính của tiến trình
• Có số nhận dạng (pid)
• Có chủ sở hữu uid và nhóm của chủ sở hữu gid
• Có tiến trình cha ppid
• init là tiến trình được khởi động đầu tiên
– Pid = 1
– Là cha ông (tổ tiên) của tất cả các tiến trình khác
• Có thư mục làm việc và môi trường làm việc thừa kế
từ tiến trình cha
07/08/12 Ngô Bá Hùng - Khoa CNTT&TT - ĐH Cần Thơ 6
Quản lý tiến trình trên Linux
Theo dõi tiến trình - lệnh ps
• Liệt kê các tiến trình
• Không có tùy chọn sẽ liệt kê các tiến trình được thực
thi từ terminal hiện hành của người dùng hiện tại
• Các option của lệnh ps
a: liệt kê các tiến trình sở hữu bởi tất cả người dùng
u: liệt kê tiến trình với tên chử sở hữu
x: liệt kê cả các tiến trình không có terminal điều khiển
• Thường dùng kết hợp với lệnh grep
– ps aux | grep java
07/08/12 Ngô Bá Hùng - Khoa CNTT&TT - ĐH Cần Thơ 7
Quản lý tiến trình trên Linux
Ý nghĩa kết quả lệnh ps
• USER PID %CPU %MEM VSZ RSS TTY STAT START TIME COMMAND
root 1 0.0 0.0 2880 1740 ? Ss 08:43 0:00 /sbin/init
root 2 0.0 0.0 0 0? S 08:43 0:00 [kthreadd]
root 3 0.1 0.0 0 0? S 08:43 0:04 [ksoftirqd/0]
• USER = Chủ sở hữu tiến trình
PID = Số nhận dạng tiến trình (Process ID)
%CPU = Mức độ sử dụng CPU
%MEM = Mức độ sử dụng bộ nhớ thực
VSZ = Kích thức bộ nhớ ảo sử dụng
RSS = Kích thước bộ nhớ stack
TTY = Terminal điều khiển
STAT = multi-character process state
START = Thời gian bắt đầu
TIME = Thời gian sử dụng CPU
COMMAND = Lệnh thực thi tiến trình
07/08/12 Ngô Bá Hùng - Khoa CNTT&TT - ĐH Cần Thơ 8
Quản lý tiến trình trên Linux
Liệt kê tiến trình dạng cây-pstree
• pstree
07/08/12 Ngô Bá Hùng - Khoa CNTT&TT - ĐH Cần Thơ 9
Quản lý tiến trình trên Linux
Một số tùy chọn với pstree
• -a: liệt kê cả tham số của lệnh
• -h: In đậm tổ tiên của tiến trình hiện hành
• -p: liệt kê tiến trình cùng với pid
• -n: Sắp xếp kết quả theo pid thay vì theo tên
07/08/12 Ngô Bá Hùng - Khoa CNTT&TT - ĐH Cần Thơ 10
Quản lý tiến trình trên Linux
Theo dõi tiến trình - lệnh top
• Hiển thị danh sách các tiến trình theo mức độ sử
dụng CPU từ cao đến thấp
• Tương tác
– q: Thoát chương trình
– n: Nhập pid của tiến trình muốn xem thông tin
– r: Thay đổi độ ưu tiên của một tiến trình
07/08/12 Ngô Bá Hùng - Khoa CNTT&TT - ĐH Cần Thơ 11