《Linux 七》 進程管理

來源:互聯網
上載者:User

課程大綱 『
 進程的概念
 進程管理命令
 計劃任務

進程和程式的區別
 1、程式是靜態概念,本身作為一種軟體資源長期儲存;而進程是程式的執行過程,
    它是動態概念,有一定的生命期,是動態產生和消亡的。
 2、程式和進程無一一對應關係。一個程式可以由多個進程共用;另一方面,一個
    進程在活動中有可順序地執行若干個程式。
父進程與子進程
 1、子進程是由一個進程所產生的進程,產生這個子進程的進程稱為父進程。
 2、在Linux系統中,使用系統調用fork建立進程。fork複製的內容包括父進程的
    資料和堆棧段以及父進程的進程環境。
 3、父進程終止子進程自然終止。
前台進程和後台進程
 前台進程:
  在Shell提示處打入命令後,建立一個子進程,運行命
  令,Shell等待命令退出,然後返回到對使用者給出提示
  符。這條命令與Shell非同步運行,即在前台運行,使用者在
  它完成之前不能執行另一個命令。
 後台進程:  【很好】
  在Shell提示處打入命令,若後隨一個&,Shell建立的子
  進程運行此命令,但不等待命令退出,而直接返回到對
  使用者給出提示。這條命令與Shell同步運行,即在後台運
  行。後台進程必須是非互動。
進程狀態
 就緒: 進程已經分配到資源,但因為其它進程正佔用
       CPU,所以暫時不能運行而等待分配CPU的狀態。
 等待: 因等待某種事件而暫時不能啟動並執行狀態。
 運行: 進程分配到CPU,正在處理器上運行。

進程狀態細化
 使用者態運行 : 在CPU上執行使用者代碼
 核心態運行 : 在CPU上執行核心代碼
 在記憶體就緒 : 具備運行條件,只等發送器為它分配CPU
 在記憶體睡眠 : 因等待某一事件的發生,而在記憶體中排隊等待
 在外存就緒 : 就緒進程被交換到外存上繼續處於就緒狀態
 在外存睡眠 : 睡眠進程被交換到外存上繼續等待
 在記憶體暫停 : 因調用stop程式而進入跟蹤暫停狀態,等待其父進程發送命令。
 在外存暫停 : 處於跟蹤暫停態的進程被交換到外存上
 建立態 : 新進程正在被建立、但尚未完畢的中間狀態
 終止態 : 進程終止自己

查看使用者資訊 w
 w顯示資訊的含義
 JCPU : 以終端代號來區分,該終端所有相關的進程執行時,所消耗的CPU時間會顯示在這裡
 PCPU : CPU執行程式耗費的時間
 WHAT : 使用者正在執行的操作查看個別使用者資訊:w 使用者名稱
查看使用者資訊 w
w顯示資訊的含義
 load average: 分別顯示系統在過去1、5、15分鐘內的平均負載程度。
 FROM: 顯示使用者從何處登入系統,“:0”的顯示代表該使用者時從X Window下,開啟文
       本強制回應視窗登入的
 IDLE: 使用者閑置的時間。這是一個計時器,一旦使用者執行任何操作,該計時器便會
       被重設

hp@ubuntu:~$ w
 22:02:45 up 22 min,  2 users,  load average: 0.27, 0.27, 0.28
USER     TTY      FROM              LOGIN@   IDLE   JCPU   PCPU WHAT
hp       tty7                      21:40   22:33   1:16   0.34s gnome-session -
hp       pts/0    :0               22:02    0.00s  0.37s  0.01s w
:0 就是用 xwindow 登陸的。

查看系統中的進程 ps 常用選項
 a : 顯示所有使用者的進程
 u : 顯示使用者名稱和啟動時間
 x : 顯示沒有控制終端的進程
 e : 顯示所有進程,包括沒有控制終端的進程
 l : 長格式顯示
 w : 寬行顯示,可以使用多個w進行加寬顯示

ps常用輸出資訊的含義
 TIME:進程自從啟動以來啟用CPU的總時間
 COMMAND/CMD:進程的命令名
 USER:使用者名稱
 %CPU:佔用CPU時間和總時間的百分比
 %MEM:佔用記憶體與系統記憶體總量的百分比
ps應用執行個體
 # ps 查看隸屬於自己的進程
 # ps -u or -l 查看隸屬於自己進程詳細資料
 # ps -le or -aux 查看所有使用者執行的進程的詳細資料
 # ps -aux --sort pid 可按進程執行的時間、
    PID、UID等對進程進行排序
ps應用執行個體
 # ps -aux | grep sam
 # ps -uU sam 查看系統中指定使用者執行的進程
 # ps -le | grep init 查看指定進程資訊
 # pstree
kill – 殺死進程
 *1 為什麼要殺死進程
 *2 該進程佔用了過多的CPU時間
 *3 該進程縮住了一個終端,使其他前台進程無法運行
 *4 已耗用時間過長,但沒有預期效果
 *5 產生了過多到螢幕或磁碟檔案的輸出
 *6 無法正常退出
關閉進程:kill 進程號
 *1 kill -9 進程號(強行關閉)  kill -s 9 進程號 [前簡化]  
 *2 kill -1 進程號(重啟進程)
 *3 關閉圖形程式:xkill
 *4 結束所有進程:killall
 *5 尋找服務進程號:pgrep 服務名稱
 *6 關閉進程:pkill 進程名稱
 啟動程式 stop , 也可以關閉
 /etc/rc.d/init.d/httpd restart
--------------------------------
# cat/proc/cpuinfo
# pgrep httpd 檢測但它所有進程的 pid
# pkill httpd 也可以關閉,很方便
nice和renice
 nice
  指定程式的運行優先順序
  格式:nice -n command
  例如:nice -5 myprogram
 renice
  改變一個正在啟動並執行進程的優先順序
  格式:renice n pid
  例如:renice -5 777
 *優先順序取值範圍為(-20,19)*
nohup
 使進程在使用者退出登陸後仍舊繼續執行,nohup命令將執行後的資料資訊和
 錯誤資訊預設儲存到檔案nohup.out中
 格式: nohup program &
進程的掛起和恢複
 進程的中止(掛起)和終止
 掛起(Ctrl+Z)  [類似差不多暫停]
 終止(Ctrl+C)
 進程的恢複
 恢複到前台繼續運行(fg)
 恢複到後台繼續運行(bg)
 查看被掛起 /背景進程(jobs)

top
 作用:進程狀態顯示和進程式控制制,每5秒鐘自動重新整理一次(動態顯示)
 常用選項:
  d : 指定重新整理的時間間隔
  c : 顯示整個命令列而不僅僅顯示命令名
 top常用命令:
  u : 查看指定使用者的進程
  k : 終止執行中的進程
  h or ?:獲得協助
  r : 重新設定進程優先順序
  s : 改變重新整理的時間間隔
  W : 將當前設定寫入~/.toprc檔案中

計劃任務
 #1 為什麼要設定計劃任務
 #2 計劃任務的命令 {
    *1 at 安排作業在某一時刻執行一次
    *2 batch 安排作業在系統負載不重時執行一次
    *3 cron 安排周期性啟動並執行作業
 }
at命令的功能和格式
  功能:安排一個或多個命令在指定的時間運行一次
   at的命令格式及參數
     at [-f 檔案名稱] 時間
     at -d or atrm  刪除隊列中的任務
     at -l or atq   查看隊列中的任務
伺服器一般 02:00 ~ 04:00 不那麼繁忙!
進程處理方式
 standalone 獨立運行
 xinetd 進程託管
 atd、crond 計劃任務

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.