1. Trang chủ
  2. » Luận Văn - Báo Cáo

Quản lý tiến trình bằng shell trong linux

20 813 2

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Định dạng
Số trang 20
Dung lượng 1,61 MB

Nội dung

Quản lý tiến trình bằng shell trong linux

TRƯỜNG ĐẠI HỌC CÔNG NGHỆ THÔNG TIN Website: http://uit.edu.vn BỘ MÔN HỆ ĐIỀU HÀNH TIỂU LUẬN HỆ ĐIỀU HÀNH ĐỀ TÀI QUẢN LÝ TIẾN TRÌNH BẰNG SHELL TRONG LINUX GIÁO VIÊN HƯỚNG DẪN: THS LƯƠNG NGỌC KHÁNH NHÓM SINH VIÊN: VĂN PHÚ HIẾU (09520409) NGUYỄN TRỌNG NHÂN (09520425) NGUYỄN ANH VŨ (09520454) TP HỒ CHÍ MINH 11/2010 Trường ĐH Công Nghệ Thông Tin Quản Lý tiến trình shell Linux Mục lục: I Giới thiệu hệ điều hành Linux II Shell UNIX/Linux III SỬ DỰNG SHELL NHƯ NGÔN NGỮ LẬP TRÌNH 3.1 Điều khiển shell từ dòng lệnh 3.2 Điều khiển shell tập tin kịch (script file) 3.3 Thực thi script IV CÚ PHÁP NGÔN NGỮ SHELL 4.1 Các mệnh đề điều kiện 4.1.1 Mệnh đề if 4.2 Các mệnh đề vòng lặp 4.2.1 Mệnh đề for 4.2.2 Mệnh đề while 4.2.3 Mệnh đề until 10 4.2.4 Câu lệnh shift 11 V Quản lý tiến trình Linux 12 5.1 Phân loại tiến trình: 12 5.2.Hiển thị thông tin tiến trình: 12 5.3.Hiển thị thông tin sử dụng tài nguyên – lệnh top: 13 5.4 Dừng tiến trình – lệnh kill: 14 5.5.Hiển thị tiến trình ngầm, thay đổi chế độ cho tiến trình: 14 V Demo Shell Script (activity monitor) 15 Trường ĐH Công Nghệ Thông Tin Quản Lý tiến trình shell Linux I Giới thiệu hệ điều hành Linux Linux hệ điều hành họ UNIX miễn phí sử dụng rộng rãi Được viết vào năm 1991 Linus Toward, hệ điều hành Linux thu thành công định Là hệ điều hành đa nhiệm, đa người dùng, Linux chạy nhiều phần cứng khác Với tính ổn định mềm dẻo, Linux dần sử dụng nhiều máy chủ máy trạm mạng máy tính Linux cho phép dễ dàng thực việc tích hợp hệ điều hành khác mạng máy tính Windows, Novell, Apple Ngoài ra, với tính mã nguồn mở, hệ điều hành cho phép khả tùy biến cao, thích hợp cho nhu cầu sử dụng cụ thể II Shell UNIX/Linux Mọi thứ thực Unix tiến trình Vậy tạo tiến trình ? Cách thứ viết chương trình mà chương trình biết cách tạo tiến trình (C/C++) Tuy nhiên cách đòi hỏi nhiều hiểu biết nỗ lực Cũng hệ điều hành làm việc kiểu ảo khác, Unix hổ trợ phương tiện xử lí lệnh làm giao diện lệnh máy (mà người dùng đưa vào) việc thực thi lệnh (bởi Unix) Phương tiện gọi shell Từ đời Unix có vài kiểu shell, Bourne, C, Korn shell Thực shell làm ? Tòan mục đích shell để khởi động tiến trình xử lí lệnh đưa vào: yêu cầu đưa (dòng) lệnh vào, đọc đầu vào, thông dịch dòng lệnh đó, tạo tiến trình để thực lệnh Nói cách khác shell quét dòng lệnh đưa vào máy tính, cấu hình môi trường thực thi tạo tiến trình để thực lệnh Như tìm hiểu shell thực tế học ngôn ngữ lập trình, cho dù không phức tạp C, hay ngôn ngữ khác, phải qua đòi hỏi cần thiết Trong Unix/Linux có lọai shell khác lựa chọn để dùng theo nhu cầu mà người dùng thấy phù hợp Hình mô hình tương tác shell, chương trình ứng dụng, hệ X-Window hạt nhân Trường ĐH Công Nghệ Thông Tin Quản Lý tiến trình shell Linux Linux/Unix tách biệt ứng dụng, lệnh gọi hàm chức nhân thành đơn thể nhỏ (tiến trình) Tuy nhiên, nhiều lệnh Linux kết hợp lại với để tạo nên chức tổng hợp mạnh mẽ Ví dụ: $ ls -al | more lệnh kết hợp hai lệnh, ls liệt kê toàn danh sách tệp thư mục đĩa hình, danh sách dài, ls chuyển liệu kết xuất cho lệnh more xử lý hiển thị kết thành trang hình Linux có cách kết hợp liệu kết xuất lệnh với thông qua chế chuyển tiếp (redirect), ống dẫn (pipe) Kết hợp lệnh với dòng lệnh không chưa đủ Nếu muốn tổ hợp nhiều lệnh đồng thời với tùy vào điều kiện, kết xuất lệnh, mà có ứng xử thích hợp sao? Lúc dùng đến cấu trúc lập trình rẽ nhánh if, case Trường hợp bạn muốn thực thao tác vòng lặp, phải dùng lệnh for, while Shell trình diễn dịch cung cấp cho người dùng khả Hầu hết Shell Unix/Linux sử dụng ngôn ngữ gần giống với C (điều dễ hiểu giới Unix/Linux, C ngôn ngữ lập trình thống trị) Ngôn ngữ Shell giống C lập trình viên hay người điều khiển Linux cảm thấy thân thiện với HĐH Hệ thống cung cấp cho người dùng nhiều chương trình shell Mỗi shell có số tiện ích hỗ trợ chế độ gõ phím, ghi nhớ lệnh Kết hợp tiện ích shell để tạo chương trình chạy được, chương trình lưu dạng tệp, gọi tệp kịch (script, thử mở tệp quan sát cấu trúc tệp) Viết tệp script, thực chất lập trình theo shell Một quen thuộc với shell cách hoạt động shell đó, người dùng làm chủ shell khác cách để dàng Các shell Unix/Linux: sh ( Bourne ) Unix Csh, tcsh zsh bash rc shell nguyên thủy áp dụng cho dòng shell sử dụng cấu trúc lệnh C làm ngôn ngữ kịch Được tạo Bia Joy Là shell thông dụng thứ hai sau bash shell shell chủ yếu Linux Ra đời từ dự án GNU bash (Viết tắt Bourne Again Shell có lợi điểm mã nguồn công bố rộng rãi Nếu bash chưa có sẵn hệ thống Unix hay Linux, tải về, biên dịch sử dụng miễn phí địa www.gnu.org shell mô rộng csh với nhiều tương thích với ngôn ngữ C rc đời từ dự án GNU Shell chuẩn thường nhà phân phối Linux sử dụng bash shell Khi cài đặt Linux, trình cài đặt thường mặc định bash shell khởi động Có thể tìm thấy chương trình shell thư mục /bin với tên chương trình bash Trường ĐH Công Nghệ Thông Tin Quản Lý tiến trình shell Linux bash chương trình nhị phân script gọi đến liên kết nhị phân khác Có thể dùng lệnh file để xem bash tập tin nhị phân hay script sau: $ file /bin/bash /bin/bash: ELF 32-bit LSB executable Intel 80386 kết kết xuất dạng ELF có nghĩa bash chương trình nhị phân Tuy bash shell sử dụng phổ biến Linux, ví dụ lập trình sử dụng ngôn ngữ lệnh shell sh sh shell nguyên thủy, chạy Unix Bằng lệnh file ta thấy hầu hết Linux sh liên kết đến bash mà Ví dụ: $ file /bin/sh /bin/sh: symbolic link to bash điều có nghĩa bash hoàn toàn diễn dịch điều khiển lệnh shell sh III SỬ DỰNG SHELL NHƯ NGÔN NGỮ LẬP TRÌNH Có hai cách để viết chương trình điều khiển shell: gõ chương trình từ dònglệnh cách đơn giản Tuy nhiên thành thạo gộp lệnh vào tệp để chạy (chúng tương đương với cách DOS gọi tệp *.bat), điều hiệu tận dụng triệt để tính tự động hóa shell 3.1 Điều khiển shell từ dòng lệnh Chúng ta sử dụng nhiều lệnh dòng cách dấu chấm phẩy (;) Ví dụ: $ mkdir myfolđer; cd myfolder; tạo thư mục myfolder lệnh mkdir sau chuyển vào thư mục lệnh cd Chỉ cần gõ Enter lần để thực thi hai lệnh lúc Tuy nhiên sửa chữa khối lệnh không dễ dàng dễ gây lỗi Chúng thuận tiện cho kết hợp khoảng vài ba lệnh Để dễ bảo trì bạn đưa lệnh vào tập tin yêu cầu shell đọc nội dung tập tin để thực thi lệnh Những tập tin gọi tập tin kịch (shell script) 3.2 Điều khiển shell tập tin kịch (script file) Trước hết ta gõ câu lệnh sau Cat >first.sh #!/bin/sh clear echo “Hello word” exit Sau nhấn tổ hợp phím Ctrl+D để thoát khỏi trình soạn thảo lưu lại script Thực thi script file lệnh: Trường ĐH Công Nghệ Thông Tin Quản Lý tiến trình shell Linux /bin/sh first.sh Khi hình xuất dòng chữ: Hello word Đây chương trình shell Bây phân tích chương trình Chỉ thị #! Còn dùng để gọi chương trình ta muốn chạy trước script dịch Lệnh clear để xóa lệnh tồn hình Lệnh echo để xuất dòng chữ “Hello word” hình Lệnh exit bảo đảm script sau thực thi trả mã lỗi, cách mà hầu hết chương trình nên làm, mã lỗi trả vế dùng đến trường hợp thực tương tác trực tiếp từ dòng lệnh Tuy nhiên, nhận biết mã trả đoạn script sau thực thi, lại thường có ích bạn triệu gọi script từ script khác Trong đoạn chương trình trên, lệnh exit trả 0, cho biết script thực thi thành công thoát khỏi shell gọi Mặc dù lưu tập tin script với tên sh, UNIX Linux không bắt buộc điều Hiếm Linux sử dụng phần đuôi mở rộng tập tin làm dấu hiệu nhận dạng, tệp tệp script tùy ý Tuy sh cách nhận tập tin script shell cách nhanh chóng 3.3 Thực thi script Chúng ta vừa tạo tập tin script first.sh, gọi thực thi theo cách Cách đơn giản triệu gọi trình shell với tên tập tin script làm đối số Ví dụ: $ /bin/ sh first.sh Cách gọi bình thường, quen thuộc ta gọi first.sh từ dòng lệnh, tương tự lệnh Linux thông thường Để làm điều này, trước hết cần chuyển thuộc tính thực thi (x) cho tập tin script lệnh chmod sau: $ chmod +x first.sh Sau triệu gọi script theo cách thứ hai tiện lợi hơn: $ /first.sh IV CÚ PHÁP NGÔN NGỮ SHELL 4.1 Các mệnh đề điều kiện Các mệnh đề điều kiện dùng để thi hành phần khác chương trình shell tuỳ thuộc vào điều kiện cụ thể Cả bash, pdksh tcsh có hai dạng mệnh đề điều kiện mệnh đề if mệnh đề case Cú pháp mệnh đề có khác biệt chút shell khác 4.1.1 Mệnh đề if Cả loại shell nói hỗ trợ mệnh đề điều kiện dạng if-then-else Cú pháp mệnh đề có dạng sau : a Dạng đơn giản tcsh bash pdksh Trường ĐH Công Nghệ Thông Tin if [bieu_thuc] then cau_lenh fi Quản Lý tiến trình shell Linux if (bieu_thuc) then cau_lenh endif Nếu biểu thức bieu_thuc đánh giá Đúng (các) câu lệnh cau_lenh thực hiện, không chương trình bỏ qua thực câu lệnh phía sau fi endif Nếu có câu lệnh thực if tcsh có dạng đơn giản : if (bieu_thuc) cau_lenh b.Dạng if-else bash pdksh if [bieu_thuc] then cau_lenh else cau_lenh1 fi tcsh if (bieu_thuc) then cau_lenh else cau_lenh1 endif Dạng mở rộng dạng đơn giản nói chỗ: bieu_thuc Sai cau_lenh1 thực c Dạng else-if Nếu sau else tiến hành kiểm tra điều kiện bieu_thuc2 người ta phải đưa thêm mệnh đề if vào khối mệnh đề else tcsh bash pdksh if [bieu_thuc] if (bieu_thuc) then cau_lenh then cau_lenh else if (bieu_thuc2) elsif [bieu_thuc2] then cau_lenh then cau_lenh else else caulenh cau_lenh endif fi d Ví dụ Ví dụ sau thực kiểm tra tệp tai_lieu có nằm thư mục không in kết hình Đối với bash pdksh: Trường ĐH Công Nghệ Thông Tin Quản Lý tiến trình shell Linux if [ -f tai_lieu] then echo "Co tệp tai_lieu thu mục hien thoi" else echo "Khong tim thay tệp tai_lieu thu muc hien thoi" fi Đối với tcsh (lưu ý phải có ký tự # đầu chương trình) : # if ( { -f tai_lieu } ) then echo "Co tệp tai_lieu thu muc hien thoi" else echo "Khong tim thay tệp tai_lieu thu muc hien thoi" endif 4.2 Các mệnh đề vòng lặp Ngôn ngữ shell cung cấp mệnh đề vòng lặp Vòng lặp hay sử dụng vòng lặp for Ngoài có loại vòng lặp while, until 4.2.1 Mệnh đề for Mệnh đề for thực câu lệnh vòng lặp với số lần định Nó có dạng sau: a Dạng thứ tcsh bash pdksh foreach bien (danh_sach) for bien in danh_sach cau_lenh cau_lenh done … end Trong dạng này, mệnh đề for thực vòng lặp cho mục danh sách danh_sach Danh sách biến chứa từ ngăn cách dấu cách gõ trực tiếp từ vào dòng lệnh Mỗi vòng lặp, biến bien gán mục (từ) danh sách hết danh sách b Dạng thứ hai Đối với bash pdksh, mệnh đề for có dạng sau: for bien menh_de Trường ĐH Công Nghệ Thông Tin Quản Lý tiến trình shell Linux done Trong dạng này, mệnh đề for thực vòng lặp cho mục biến bien Khi cú pháp sử dụng, chương trình shell giả sử biến bien chứa tham số vị trí truyền cho chương trình thông qua dòng lệnh Thông thường, dạng mệnh đề tương đương với mệnh đề sau: for bien in "$@" menh_de done c Ví dụ mệnh đề for Ví dụ sau (bash pdksh) lấy tuỳ chọn dòng lệnh tệp text Đối với tệp, chương trình đọc chuyển đổi chữ thường thành chữ hoa lưu vào tệp có tên giống tệp cũ có thêm phần mở rộng caps for tệp tr a-z A-Z < $tệp > $tệp.caps done Còn ví dụ tương đương viết cho tcsh # foreach tệp ($*) tr a-z A-Z < $tệp > $tệp.caps end 4.2.2 Mệnh đề while a Cú pháp mệnh đề while Mệnh đề while thực đoạn chương trình bên chừng mà biểu thức cho Đúng Cú pháp sau: tcsh bash pdksh while bieu_thuc menh_de done while (bieu_thuc) menh_de … end b Ví dụ mệnh đề while Ví dụ sau (bash, pdksh) liệt kê tham số truyền với số lượng tham số : count=1 while [ -n "$*" ] Trường ĐH Công Nghệ Thông Tin Quản Lý tiến trình shell Linux echo "Day la tham so thu $count: $1" shift count=`expr $count + 1` done Còn đoạn mã tương đương dành cho tcsh : # set count = while ("$*" != "") echo "Day la tham so thu $count: $1" shift set count = `expr $count + 1` end 4.2.3 Mệnh đề until a Cú pháp mệnh đề until Cú pháp mệnh đề until giống với mệnh đề while Điểm khác biệt chỗ, mệnh đề while thực vòng lặp chừng biểu thức điều kiện Đúng, mệnh đề until thực vòng lặp chừng biểu thức điều kiện Sai Cú pháp bash pdksh sau : until bieu_thuc cau_lenh done b Ví dụ mệnh đề until Ta viết lại ví dụ vòng lặp until sau: count= until [ -z "$*" ] echo "Day la tham so thu $count: $1" shift count=`expr $count + 1` done 10 Trường ĐH Công Nghệ Thông Tin Quản Lý tiến trình shell Linux Điểm khác biệt ví dụ biểu thức điều kiện -n "$*" thay -z "$*" (ý nghĩa ngược lại) Đó mệnh đề until hoàn toàn giống với mệnh đề while đảo ngược điều kiện Vì tcsh mệnh đề 4.2.4 Câu lệnh shift a Giới thiệu câu lệnh shift Cả bash, pdksh tcsh hỗ trợ câu lệnh shift Câu lệnh dịch chuyển giá trị thời lưu tham số vị trí sang vị trí phía bến trái Ví dụ ta có : $1=Xin $2=chao $3=ban sau thực lệnh shift ta có : $1=chao $2=ban Ta chuyển sang trái vị trí cách thêm số bước dịch chuyển vào câu lệnh: shift Bằng cách dùng shift ta duyệt qua tuỳ chọn dòng lệnh cách dễ dàng Vì câu lệnh hữu dụng việc phân tích tuỳ chọn dòng lệnh b Ví dụ câu lệnh shift Ví dụ sau nhận tệp: tệp đầu vào (-i tệp_vao) tệp đầu (-o tệp_ra) Chương trình đọc tệp đầu vào, chuyển ký tự thành chữ hoa ghi tệp đầu while [ "$1" ] if [ "$1" = "-i" ] then tệp_vao= $2 shift elif [ "$1" = "-o" ] then tệp_ra="$ 2" shift else echo "Chuong trinh $0 khong nhan 11 Trường ĐH Công Nghệ Thông Tin Quản Lý tiến trình shell Linux tham so $1" echo "Cach su dung: $0 -i tệp_vao -o tệp_ra" fi done tr a-z A-Z $tệp_vao $tệp_ra V Quản lý tiến trình Linux 5.1 Phân loại tiến trình: - Interactive process (tiến trình đối thoại) Là tiến trình khởi động quản lý shell, kể tiến trình foreground background Batch process Tiến trình không gắn liền với terminal (tty) nằm hàng đợi để thực - Daemon process (Disk And Execution MONitor) Là tiến trình chạy chế độ ngầm khởi động từ đầu Các daemon thường hệ thống phát sinh tự động hoạt động liên tục hay phát sinh định kỳ Hầu hết dịch vụ mạng tiến trình daemon, tên tiến trình kết thúc ký tự “d” như: inetd, named, httpd… 5.2.Hiển thị thông tin tiến trình: – lệnh ps Để biết thông tin tiến trình hành ta sử dụng: ps [option] -e: hiển thị thông tin tiến trình -l: hiển thị thông tin đầy đủ tiến trình -f: hiển thị thông tin tiến trình cha -a: hiển thị tất tiến trình Lưu ý: dòng lệnh ps –aux: liệt kê danh sách tiến trình chạy thông tin như: Chủ nhân tiến trình (owner), mã số nhận diện tiến trình (PID), thời gian sử dụng CPU (%CPU), mức chiếm dụng nhớ tiến trình (%MEM), trạng thái tiến trình (STAT) thông tin khác 12 Trường ĐH Công Nghệ Thông Tin Quản Lý tiến trình shell Linux Một số trạng thái tiến trình thường gặp: R-đang thi hành, S-đang bị đóng, Zngừng thi hành, W-không đủ nhớ… 5.3.Hiển thị thông tin sử dụng tài nguyên – lệnh top: Hiển thị danh sách tiến trình hệ thống theo thời gian thực Nó thống kê số lượng tiến trình trạng thái chúng, tình trạng sử dụng CPU, nhớ … -top [option] -d time: khoảng thời gian trễ time lần cập nhật thông tin trạng thái (mặc định giây) -p [pid]: theo dõi tiến trình có mã pid -c: hiển thị đầy đủ dòng lệnh thay hiển thị tên lệnh tạo tiến trình -a: hiển thị tất tiến trình.Một điểm khác biệt top ps cho phép ta thi hành lệnh thân trình hiển thị thông tin 13 Trường ĐH Công Nghệ Thông Tin Quản Lý tiến trình shell Linux 5.4 Dừng tiến trình – lệnh kill: Lệnh kill thường sử dụng để ngừng thi hành tiến trình kill [signal] signal: số hay tên tín hiệu gởi tới tiến trình PID: mã số nhận diện tiến trình muốn dừng Lệnh kill gởi tín hiệu signal tới tiến trình, theo mặc định gởi tín hiệu 15, TERM (là tín hiệu kết thúc chương trình) Lệnh kill -9 PID: ngừng thi hành tiến trình mà không bị tiến trình khác can thiệp (tín hiệu 9, KILL) Super-user có quyền dừng tất tiến trình, người sử dụng dừng tiến trình Các signal thường dùng lệnh kill bao gồm: Tên Giá trị Tác động SIGHUP - Hangup (gọi lại tiến trình) SIGINT - Ngắt từ bàn phím (Ctrl+C) SIGKILL - Hủy tiến trình SIGTERM 15 - Kết thúc tiến trình SIGSTOP 17,19,23: - Dừng tiến trình Khi kết thúc tiến trình hay chuỗi tiến trình, thông thường nên tiến hành thử với tín hiệu gây nguy hiểm nhất, SIGTERM, không sử dụng 14 Trường ĐH Công Nghệ Thông Tin Quản Lý tiến trình shell Linux tín hiệu INT hay KILL 5.5.Hiển thị tiến trình ngầm, thay đổi chế độ cho tiến trình: Lệnh jobs: Hiển thị tiến trình ngầm (background) Ký hiệu + tác vụ xử lý Ký hiệu – tác vụ xử lý fg: chuyển tiến trình background -> foreground $ fg %3 (mã số tác vụ tiến trình ngầm) bg: chuyển tiến trình foreground -> background Lưu ý: phải tạm dừng cách nhấn tổ hợp phím (ctrl+z), sau chuyển sang chế độ ngầm lệnh bg V Demo Shell Script (activity monitor) #! /bin/sh # Chương Trình: Activity Monitor # Lệnh dùng này: # - id: Tiện ích hiển thị tên người dùng, tên nhóm ID # - uname: Kết trả đặc tính hệ thống # - top, ps: Hiển thị thông tin tiến trình # - kill: Hủy tiến trình # Menu Function set_menu_choice() { until [ $your_choice = "3" ] clear echo "Shell is called from: $0" echo echo "Information of System" echo " - UserID: $(id -u)" echo " - Hostname: $(uname -n)" echo " - Machine Number: $(uname -m)" echo " - Kernel Version: $(uname -r)" echo echo "Options :" echo echo " Overview" echo " Processes" echo " Quit" echo printf "Please Choice and then Press Enter: " read your_choice echo case "$your_choice" in "1") overview;; 15 Trường ĐH Công Nghệ Thông Tin Quản Lý tiến trình shell Linux "2") processes;; "3") echo "Goodbye ! Have a nice day" echo exit 0;; *) echo "Sorry, answer not recognized" echo echo "Press any key to continue " read -n esac done } # OverView Function overview () { echo "Note ! If you want to QUIT please Press \"q\"" read top } # Processes Function processes () { echo "Press any Enter to Show " read clear ps -x echo "Do you want to Kill any Processes ? ( y/n ) " read -n kill_processes while [ "$kill_processes" != "y" ] && [ "$kill_processes" != "n" ]; printf " " read -n kill_processes done if [ $kill_processes == "y" ]; then echo echo "Note ! Press PID = to Return" printf "Process ID (PID) = " read pid echo if [ $pid = "0" ]; then echo "Press any key to continue " read -n 16 Trường ĐH Công Nghệ Thông Tin Quản Lý tiến trình shell Linux else kill $pid echo "Ok ! Done" echo echo "Press any key to continue " read -n fi else echo echo "Press any key to continue " read -n fi } set_menu_choice 17 Trường ĐH Công Nghệ Thông Tin Quản Lý tiến trình shell Linux 18 Trường ĐH Công Nghệ Thông Tin Quản Lý tiến trình shell Linux 19 Trường ĐH Công Nghệ Thông Tin Quản Lý tiến trình shell Linux 20 [...]... Tin Quản Lý tiến trình bằng shell trong Linux else kill $pid echo "Ok ! Done" echo echo "Press any key to continue " read -n 1 fi else echo echo "Press any key to continue " read -n 1 fi } set_menu_choice 17 Trường ĐH Công Nghệ Thông Tin Quản Lý tiến trình bằng shell trong Linux 18 Trường ĐH Công Nghệ Thông Tin Quản Lý tiến trình bằng shell trong Linux 19 Trường ĐH Công Nghệ Thông Tin Quản Lý tiến trình. .. Hangup (gọi lại tiến trình) SIGINT 2 - Ngắt từ bàn phím (Ctrl+C) SIGKILL 9 - Hủy tiến trình SIGTERM 15 - Kết thúc tiến trình SIGSTOP 17,19,23: - Dừng tiến trình Khi kết thúc một tiến trình hay một chuỗi các tiến trình, thông thường nên tiến hành thử với tín hiệu ít gây nguy hiểm nhất, SIGTERM, nếu không được mới sử dụng các 14 Trường ĐH Công Nghệ Thông Tin Quản Lý tiến trình bằng shell trong Linux tín hiệu... $tệp_vao $tệp_ra V Quản lý tiến trình trong Linux 5.1 Phân loại tiến trình: - Interactive process (tiến trình đối thoại) Là tiến trình khởi động và quản lý bởi shell, kể cả các tiến trình foreground hoặc background Batch process Tiến trình không gắn liền với terminal (tty) và được nằm trong hàng đợi để lần lượt thực hiện - Daemon process (Disk And Execution MONitor) Là tiến trình chạy ở chế độ ngầm... –aux: liệt kê danh sách các tiến trình đang chạy cùng các thông tin của nó như: Chủ nhân của tiến trình (owner), mã số nhận diện tiến trình (PID), thời gian hiện sử dụng CPU (%CPU), mức chiếm dụng bộ nhớ của tiến trình (%MEM), trạng thái tiến trình (STAT) và các thông tin khác 12 Trường ĐH Công Nghệ Thông Tin Quản Lý tiến trình bằng shell trong Linux Một số trạng thái của tiến trình thường gặp: R-đang... hết các dịch vụ mạng là các tiến trình daemon, tên tiến trình kết thúc bằng ký tự “d” như: inetd, named, httpd… 5.2.Hiển thị thông tin tiến trình: – lệnh ps Để biết thông tin các tiến trình hiện hành ta sử dụng: ps [option] -e: hiển thị thông tin về mỗi tiến trình -l: hiển thị thông tin đầy đủ tiến trình -f: hiển thị thông tin về tiến trình cha -a: hiển thị tất cả các tiến trình Lưu ý: dòng lệnh ps –aux:... các tiến trình. Một điểm khác biệt giữa top và ps là nó cho phép ta thi hành các lệnh của bản thân nó trong quá trình nó đang hiển thị thông tin 13 Trường ĐH Công Nghệ Thông Tin Quản Lý tiến trình bằng shell trong Linux 5.4 Dừng một tiến trình – lệnh kill: Lệnh kill thường được sử dụng để ngừng thi hành một tiến trình kill [signal] signal: là một số hay tên của tín hiệu được gởi tới tiến trình PID:... KILL 5.5.Hiển thị các tiến trình ngầm, thay đổi chế độ cho các tiến trình: Lệnh jobs: Hiển thị các tiến trình ngầm (background) Ký hiệu + chỉ ra tác vụ đang được xử lý Ký hiệu – chỉ ra tác vụ sẽ được xử lý kế tiếp fg: chuyển các tiến trình background -> foreground $ fg %3 (mã số tác vụ của tiến trình ngầm) bg: chuyển các tiến trình foreground -> background Lưu ý: phải tạm dừng bằng cách nhấn tổ hợp... mã số nhận diện tiến trình muốn dừng Lệnh kill có thể gởi bất kỳ tín hiệu signal nào tới một tiến trình, nhưng theo mặc định nó gởi tín hiệu 15, TERM (là tín hiệu kết thúc chương trình) Lệnh kill -9 PID: ngừng thi hành tiến trình mà không bị các tiến trình khác can thiệp (tín hiệu 9, KILL) Super-user mới có quyền dừng tất cả các tiến trình, còn người sử dụng chỉ được dừng các tiến trình của mình Các... Chương trình sẽ đọc tệp đầu vào, chuyển các ký tự thành chữ hoa và ghi ra tệp đầu ra while [ "$1" ] do if [ "$1" = "-i" ] then tệp_vao= $2 shift 2 elif [ "$1" = "-o" ] then tệp_ra="$ 2" shift 2 else echo "Chuong trinh $0 khong nhan ra 11 Trường ĐH Công Nghệ Thông Tin Quản Lý tiến trình bằng shell trong Linux tham so $1" echo "Cach su dung: $0 -i tệp_vao -o tệp_ra" fi done tr a-z A-Z $tệp_vao $tệp_ra V Quản. .. các tiến trình hệ thống theo thời gian thực Nó thống kê số lượng các tiến trình cùng trạng thái của chúng, tình trạng sử dụng CPU, bộ nhớ … -top [option] -d time: chỉ ra khoảng thời gian trễ time giữa 2 lần cập nhật thông tin trạng thái (mặc định là 5 giây) -p [pid]: chỉ theo dõi các tiến trình có mã pid -c: hiển thị đầy đủ dòng lệnh thay vì hiển thị tên lệnh tạo tiến trình -a: hiển thị tất cả các tiến

Ngày đăng: 10/05/2016, 11:55

TỪ KHÓA LIÊN QUAN

TÀI LIỆU CÙNG NGƯỜI DÙNG

TÀI LIỆU LIÊN QUAN

w