You are on page 1of 10

Bài 7

QUẢN LÝ TIẾN TRÌNH


Nội dung
 Tiến trình
 Chương trình lập lịch
Tiến trình
 Tiến trình
Khái niệm
• Tiến trình là một chương trình đơn chạy trên không gian
địa chỉ ảo nhằm thực hiện một công việc nào đó
• Một chương trình khi thực hiện có thể sinh nhiều tiến trình
Ví dụ: #rpm -qa | grep -i samba | more
• Tiến trình cha: sinh ra nhiều tiến trình con, tiến trình cha bị
dùng  tiến trình con bị dừng
• Mỗi tiến trình mang một định danh gọi là PID > 0, duy nhất
• Khi khởi động, thực hiện 1 TT sẵn có trong hệ thống
– Tên Init (PID=1)
– Tiến trình này  sinh ra các TT khác
– Các tiến trình khác  sinh TT khác  cây phân cấp TT
Tiến trình
Phân loại loại tiến trình:
1) Tương tác (Interactive Process): TT khởi động và
quản lý bởi shell (background / foreground)
2) Theo lô (Batch Process): TT nằm trong hàng đợi
3) Ẩn trên bộ nhớ (Daemon Process): TT được khởi tạo
tự động, được gọi daemon - kết thúc d
Xem thông tin tiến trình:
 Xem thông tin cây tiến trình trong hệ thống:
#pstree –np
 Xem thông tin TT: #ps <option>
Trong đó Option: -axl: xem tất cả TT + dòng lệnh tạo TT
-aux: xem tất cả TT trong hệ thống
-ux: xem tất cả TT mà user kích hoạt
-u username: xem tất cả TT của user nào đó
Tiến trình
Các chế độ tiến trình
 Tiến trình tiền cảnh
– TT phát sinh khi ta thực thi lệnh tại dấu nhắc shell.
– TT tiền cảnh được tạo ra thì luôn chiếm dụng quyền điều
khiển shell đến khi nào nó thực thi hoàn tất.
 Tiến trình hậu cảnh
– TT chạy nền trong hệ thống (chạy ngầm bên dưới).
TT hậu cảnh cho phép người dùng có thể thực thi nhiều
chương trình tại cùng một thời điểm.
– Để đưa tiến trình tiền cảnh vào hậu cảnh, chỉ cần thêm
dấu & sau câu lệnh.
Ví dụ: ls –al /etc &
– Khi chạy chương trình hệ thống xuất hiện dấu $ ngay 
Kiểm tra có chương trình hoạt động:$ps -aux hoặc $jobs
Tiến trình
Tạm dừng/khởi động và huỷ tiến trình
 Tạm dừng TT: Đưa TT đang chạy đưa vào hậu cảnh Ctrl + Z
– Lệnh jobs: hiển thị các tiến trình tạm dừng trong hậu cảnh
$jobs
[1] + Stopped find / -name pro –print > results.txt
[1]  STT_tiếntrình
 Khởi động TT: Đưa TT hoạt động trở lại
– Lệnh bg: TT đang tạm dừng trong hậu cảnh hoạt động trở lại.
#bg 1
#find / -name pro –print > results.txt
#jobs
[1] + Running find / -name pro –print > results.txt
– Lệnh fg: đưa một tiến trình từ hậu cảnh sang tiền cảnh
#fg [STT_tiếntrình]
Tiến trình
 Hủy tiến trình
– Lệnh kill <option> [PID]
» Tham số -9 để hủy TT không quan tâm đến điều kiện.
» Ví dụ: # kill -9 1201
1201  process_name
– Lệnh pkill <option> <process_name>
» Ví dụ: #pkill sendmail
Chương trình lập lịch
 Chương trình lập lịch
At
 At cho phép thực hiện một công việc tại một thời điểm
định trước (1 lần).
 Cú pháp:
$at [time] <Enter>
<command>

<Ctrl + D>
Ví dụ:
$at 2:00 Dec 31 2010 <Enter>
/etc/init.d/sendmail
lp /var/logs/messages
<Ctrl+D>
Chương trình lập lịch
 Xóa một công việc đã được lập lịch ta có thể dùng lệnh:
#at –r [job_number]
 Liệt kê các công việc đã được lập lịch trước đó:
#at -l
Batch
 Dùng để lập kế hoạch thực hiện dựa vào mức tải của mình
để thực hiện công việc dưới 20% (1 lần).
 Cú pháp:
$batch <Enter>
Ví dụ:
lp /usr/sales/reports/* <Enter>
<Ctrl+D>
Chương trình lập lịch
Crontab
 Cron cho phép lập lịch có tính chu kỳ
 Độ ưu tiên: At  Batch  Crontab
 Kích hoạt mỗi phút kiểm tra xem có phải thực hiện tiến trình?
 Định nghĩa trong 1 file. Tạo tập tin: #crontab [filename]
 Cài đặt tập tin lệnh vào thư mục: /usr/spool/cron/crontab/
Mỗi người có tập tin crontab trùng với username
 Cú pháp của từng công việc trong file:
<minute> <hour> <dayofmonth> <dayofyear> <dayofweek> <comm.>
Ví dụ: 0 8 * * 1 /u/sartin/bin/status_report
minute ( 0 – 59)
hour ( 0 – 23)
day of month ( 1 – 31)
month of year ( 1-12)
day of week ( 0 – 6, 0 is Sunday)
command

You might also like