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