【注】文章中的所有截圖均為centos下實驗結果,親測命令正確= ̄ω ̄=[b]【參考資料】《Linux從入門到精通(第2版)》劉憶智
等編著[/b]
1、一個小實驗:結束一個失控的程序 主目錄中用文本編輯器創建一個名為badpro的文本文件,內容如下:[code]#! /bin/bash
while echo "I'm making files!!"
do
mkdir adir
cd adir
touch afile
sleep 2s##非常重要,使得程序每次建立後“休息”2s,比較溫和
done
$ chmod +x badpro##為程序加上可執行權限 $ ./badpro &
##後台運行 $ ps aux | grep badpro##通過ps命令查看進程的PID號(唯一標識一個進程)。用管道方式獲取並查看,第二個字段為進程號 $ kill 12974
##根據進程號殺死進程 $ rm -r adir##刪除創建的目錄和文件2、什麼是進程 進程是操作系統的一種抽象概念,用來表示正在運行的程序。內核中重要的進程信息包括:進程的內存地址、進程的當前狀態、進程正在使用的資源、進程的優先級(謙讓度)、進程的屬主。[b]【轉載請注明文章出處:http://blog.csdn.net/iamthezbl/article/details51305604
】[/b]
3、進程的屬性 PID:進程的ID號,Linux不僅自己使用PID來確定進程,還要求用戶在管理進程時也要提供相應的PID號。 PPID:父進程的PID,幾乎所有的進程由另一個進程創建,創建該進程的進程稱為父進程。應用程序只能通過克隆自己產生新進程。 UID和EUID:真實和有效的用戶ID,標注了進程的屬主和訪問權限 GID和EGID:進程創建者所屬的組,當進程創建一個新文件時,該文件采用進程的GID。 謙讓度和優先級:謙讓度為優先級的相反概念,可以由用戶設置。4、進程監視:ps命令 $ ps aux##顯示當前系統上運行的所有進程的信息,每個字段的含義如下:
USER:進程創建者的用戶名 PID:進程的ID號 %CPU:進程占用的CPU百分比 %MEM:進程占用的內存百分比 VSZ:進程占用的虛擬內存大小 RSS:內存中頁的數量(頁是管理內存的單位) TTY:進程所在終端的ID號 STAT:進程的狀態,包含字母和附加標志:字母:R:正在運行/可運行D:睡眠中,不可被喚醒,通常是在等待I/O設備S:睡眠中,可以被喚醒T:停止Z:僵進程,已經結束而沒有釋放系統資源附加標志:<:進程擁有比普通優先級高的優先級N:進程擁有比普通優先級低的優先級L:有些頁面被鎖在內存中s:會話的先導進程 START:進程啟動的時間 TIME:進程已經占用的CPU時間 COMMAND:命令和參數 $ ps lax##提供父進程ID
PPID 和謙讓度 NI
【轉載請注明文章出處:http://blog.csdn.net/iamthezbl/article/details51305604
】5、即時跟蹤進程信息:top命令 $ top##默認10s刷新一次,占用CPU最多的進程會排在最前邊,使用
q 命令退出
6、查看占用文件的進程:lsof $ lsof database.doc##正在使用database.doc進程的相關信息
不帶任何參數的lsof命令會列出當前系統中所有打開文件的進程信息。要找出占用某個特定文件的進程,需要提供文件名為參數。7、向進程發送信號:kill kill命令的標准語法:kill [-signal] pid(pid為進程號)
$ kill -l##顯示所有的信號及編號
常用的信號(信號名前可以加 SIG也可以不加):
EXIT:程序退出時收到該信號 HUP:掛起 INT:中斷 QUIT:退出 KILL:殺死 SEGV:段錯誤 TERM:軟件終止 USR1:用戶定義 默認的情況下kill命令向進程發送TERM信號,這個信號表示終止某項操作,以下幾句命令等價: $ kill 12974
$ kill -TERM 12974
$ kill -SIGTERM 12974
快捷鍵Ctrl+C對應於信號INT。
如果程序中加入“trap "" TERM”用於忽略TERM信號,則該程序不能被 kill - TERM結束。 -KILL永遠不能被捕捉,可以在內核級別殺死進程。 也有一些程序不能被KILL信號殺死,只能重新啟動系統。[b]【轉載請注明文章出處:http://blog.csdn.net/iamthezbl/article/details51305604
】[/b]
8、調整進程的謙讓度:nice和renice 高謙讓度意味著低優先級,謙讓度可以為負數。
$ nice##查看默認謙讓度值 $ nice -n 2 bc##設置bc的謙讓度以默認值上增量2啟動,是啟動時相對值的調整
$ sudo nice -n -3 bc##設置bc的謙讓度以默認值上增量-3啟動
$ renice +12 -p 8567##-p選項指定進程的PID,將運行中的進程8567謙讓度調整為12,是運行時絕對值的調整
如果用戶不采取行動,新進程從父進程繼承謙讓度。進程的屬主可以提高謙讓度,但不能降低謙讓度。root用戶可以任意設置,所以上述語句中-3要用sudo語句。
9、/PROC文件 該目錄下存放著內核有關系統狀態的各種有意義的信息。 $ ls /proc/