歡迎來到Linux教程網
Linux教程網
Linux教程網
Linux教程網
您现在的位置: Linux教程網 >> UnixLinux >  >> Linux基礎 >> Linux基礎知識

Linux進程管理

進程:是操作系統中的一種抽象概念,用來表示正在運行的程序 進程有多個屬性參數:PID、PPID、UID、GID等   例子:手動創建一個後台程序,並通過kill殺死它,前台程序可以Ctrl+C殺死      1.在主目錄中用文本編輯器創建一個名為badpro的文本文件,包含如下內容:           #!  /bin/bash           while echo "I'm making files!!!"           do                mkdir adir                cd adir                touch afile                sleep 2s(不能忘,否則,必須使用rm -fr adir來刪除這些“垃圾”目錄)           done      2.將這個文件加上可執行權限,並從後台執行。           chmod +x badpro           ./badpro & (將命令放到一個工作隊列中,可以用命令“jobs”查看)      3.程序運行起來了,運行ps命令查看這個程序的PID號(PID號用於唯一表示一個進程);           ps  aux  |  grep  badpro                     ps 查看所有運行的程序           ps -aux      ##可以看到所有運行的程序與grep連用篩選           ps -a          ##顯示現行終端機下的所有程序(包括其他用戶的程序)           ps -u          ##以用戶為主的排序顯示(username)           ps -x          ##顯示所有程序(包括所有終端機下的)      4.使用kill命令“殺死“這個進程。           kill  12794 ( PID );      5.回到運行badpro的終端,可以看程序已被終止,最後刪除建立的目錄和文件           rm -r adir   1.查看所有運行的程序:ps           ps -aux      ##可以看到所有運行的程序與grep連用篩選           ps -a          ##顯示現行終端機下的所有程序(包括其他用戶的程序)           ps -u          ##以用戶為主的排序顯示(username)           ps -x          ##顯示所有程序(包括所有終端機下的)           ps aux  |  grep badpro     ##篩選出帶有badpro關鍵字的進程           ("-"可以省略)             ps lax        ##可以提供進程ID(PPID父進程)和 謙讓度(NI)不需要顯示屬主用戶名,所以速度更快
     
                                                  ps  zux 命令產生進程信息的各種字段含義: 字段 含義 USER 進程創建者的用戶名 PID 進程的ID號 %CPU 進程占用的CPU百分比 %MEM 進程占用的內存百分比 VSZ 進程占用的虛擬內存的大小 RSS 內存中頁的數量(頁是管理內存的單位,在PC上通常為4K TTY 進程所在終端的ID號 STAT 進程狀態,常用的字母代表含義如下: R 正在運行/可運行          D 睡眠中(不可被喚醒,通常是等待I/O設備) S 睡眠中(可以被喚醒)   T 停止(由於收到信號或被跟蹤) Z 僵進程(已經結束而沒有釋放系統資源的進程) 常用的附加標准: < 進程擁有比普通優先級高的優先級 N 進程擁有比普通優先級低的優先級 L 有些頁面被鎖在內存中 s 會話的先導進程 START 進程啟動的時間 TIME 進程已經占用的CPU時間 COMMAND 命令的參數   2.即時跟蹤進程信息:top           top     ##命令顯示的信息會占滿一頁,並且在默認情況下每10s更新一次。那些使用CPU最多的程序會排在最前面。            q        ##退出       3.查看占用文件的進程:lsof           lsof database.doc   4.向進程發送信號:kill(只是用來向進程發送一個信號)           kill [-signal]  pid              kill pid    等同於kill -TERM pidkill -SIGTERM pid 或kill -15 pid(SIG可以省略)           kill -INT     等同於快捷鍵Ctrl+C                                                                                       常用的信號 信號編碼 信號名 描述 默認情況下執行的操作 0 (SIG)EXIT(SIG可以省略) 程序退出時收到該信號 終止 1 (SIG)HUP 掛起 終止 2 (SIG)INT 中斷 終止 3 (SIG)QUIT 退出 終止 9 (SIG)KILL 殺死 終止 11 (SIG)SEGV 段錯誤 終止 15 (SIG)TERM(默認,不寫) 軟件終止 終止 取決於硬件體系 USR1 用戶定義 終止 取決於硬件體系 USR1 用戶定義 終止        注意:在程序的開頭加入命令“trap "" TERM”用於忽略TERM信號,如下:                     #!  /bin/bash                     trap "" TERM                     while echo ... ...                 但是KILL信號是永遠不會被程序捕獲的,可以用該信號結束進程   5.調整進程的謙讓度:nice 和 renice           謙讓度 IN 的范圍:-20~+19           nice命令可以在啟動程序時設置其謙讓度,設置 相對值           renice命令可以在進程運行時調整其謙讓度,設置 絕對值                nice -n 2 bc               ##設置bc以謙讓度 增量2 啟動                nice bc                       ##不帶-n時,會將程序的謙讓度增量設置為10                renice +12 -p [PID]    ##將bc的 -p 選項指定進程的PID   6./PROC文件系統           /PROC目錄下存放著內核有關系統狀態的各種有意義的信息。在系統運行時,內核會隨時向這個目錄寫入數據。ps和top命令就是從這個地方讀取數據的。事實上,這是操作系統向用戶提供的一條通往內核的通道,用戶甚至可以通過向/proc目錄下的文件寫入數據來修改操作系統參數                  
Copyright © Linux教程網 All Rights Reserved