天天看點

生産環境之“程序”兩字

一、程序概念   

  運作中的程式的一個副本,是被載入記憶體的一個指令集合 程序ID(Process ID,PID)号碼被用來标記各個程序UID、GID、和SELinux語境決定對檔案系統的存取和通路權限,通常從執行程序的使用者來繼承 存在生命周期。 

二、程序狀态

1)運作狀态:running    2)就緒狀态:ready  3)睡眠可中斷 

4)睡眠不可中斷   5)停止狀态 stopped   6)僵死狀态  zombie    

三、程序管理指令

Linux系統狀态的檢視及管理工具:pstree, ps, pidof, pgrep, top, htop, glance, pmap, vmstat, dstat, kill, pkill, job, bg, fg, nohup 

Linux系統各程序的相關資訊均儲存在/proc/PID目錄下 的各檔案中 

pstree指令:  

  pstree - display a tree of processes 

ps指令: 

 ps - report a snapshot of the current processes 

ps [OPTION]... 

   -e:顯示所有程序和-a等同  

   -a:顯示所有程序和-e等同 

   -f:選項顯示其程序的父程序 

   -u:選項顯示所有者資訊

   -x:包括不連結終端的程序  

   -o:指定屬性進行顯示:pid,comm,%cpu,%mem,state,tty,euser(effective user),ruser(real user) 

VSZ:Virtual Memory Size,虛拟記憶體集    RSS:常駐記憶體集(實體記憶體集)

    stat狀态: 

        R:running 

        S:interruptable sleeping 

        D:uninterruptable sleeping 

        T:stopped 

        Z:zombie  

常用組合:-ef 

   -e: 顯示所有程序 

   -f: 顯示完整格式程式資訊

常用組合:-eFH 

    -F: 顯示更完整格式的程序資訊

    -H: 以程序層級格式顯示程序相關資訊

    常用組合:自定義 -eo pid,tid,class,rtprio,ni,pri,psr, pcpu,stat,comm axo     stat,euid,ruid,tty,tpgid,sess,pgrp,ppid, pid,pcpu,comm

ni:nice值 pri:priority,優先級 psr:processor,cpu編号 rtprio:實時優先級 

pgrep指令:     

    pgrep [options] pattern  

選項:

    -u:uid,程序的生效者 

    -U:real user,真正發起運作指令者

    -t:terminal,與終端相關的程序 

    -l: 顯示程序名 -a: 顯示完整格式的程序名 -P pid: 顯示指定程序的子程序 

按确切的程式名稱:/sbin/pidof pidof bash   

三、程序管理工具

top:

<a href="http://s2.51cto.com/wyfs02/M00/86/ED/wKiom1fO2QviW4wrAABChRi3t-E626.png" target="_blank"></a>

htop:

<a href="http://s4.51cto.com/wyfs02/M01/86/F8/wKioL1fQCMjgoP2XAACVOe9-5t0167.png" target="_blank"></a>

欄目資訊:us:user space 使用者空間    sy:核心空間    ni:nice值    wa:等待I0時間    

id:空閑    hi:硬中斷    si:軟中斷    st: stolen 虛拟機偷走的時間  

程序相關參數說明: 

PID:任務的程序号    PPID:程序的父程序的程序号    RUSER:程序的所有者    EUSER:程序的生效使用者

TTY:終端   PR:優先級   %CPU:CPU的占有率   %MEM:記憶體的占有率 S:程序狀态    TIME+:CPU工作時間

top:有許多程序内置指令  

1)排序

P:以占據的cpu的百分比,%cpu  M:占據記憶體的百分比,%MEM  T:累積占據cpu時長time 

2)首部資訊

uptime資訊:l指令     tasks及cpu資訊:t指令      memory資訊:m指令

3)退出指令:q 修改重新整理時間:s  終止指定程序:k  儲存檔案:W

kill指令:向程序發送程序控制信号,以實作對程序管理。

1)SIGHUB:無需關閉程序,而讓其重讀配置檔案 

2)SIGINT: 中止正在運作中的程序  

9)SIGKILL: 殺死正在運作的程序    

15)SIGTEM: 中止正在運作的程序,讓其運作完,再次殺死   

18)SIGCONT: 繼續運作 

19)SIGSTOP: 背景休眠 

指定信号的方法: (1) 信号的數字辨別;1, 2, 9 (2) 信号完整名稱;SIGHUP (3) 信号的簡寫名稱;HUP

殺死程序的方法: 

按PID:kill [-SIGNAL] pid...   

按名稱:killall [-SIGNAL] COMM  

按模式:pkill [options] pattern    

    -SIGNAL

    -u uid:effective user 生效者  

    -t:terminal:與指定終端相關的程序   

    -l:顯示程序名 

    -a:顯示完整格式的程序名 

    -P:pid 顯示父程序為此處指定的程序的 程序清單   

作業管理:

linux的作業控制:

1)前台作業:通過終端啟動,且啟動後一直占據終端

2)背景作業:可通過終端啟動,但啟動後即轉入背景運作 

3)讓作業運作在背景:ctrl+z  command &amp;  

4)背景作業雖然被送往背景運作,但其依然與終端相關;退出終端,将關閉 背景作業。如果希望送往背景後,剝離與終端的關系 #screen;command 或者#nohup command &amp; 

5)檢視所有作業:jobs   

6) 作業控制: 

fg:把指定的背景作業調回前台 如:fg 1 

bg:讓送往後天的作業在背景繼續運作 如:bg 1 

kill:終止指定的程序    

示範:

<a href="http://s4.51cto.com/wyfs02/M01/86/FB/wKiom1fQDQnhdHpKAABSYp_1_Ck569.png" target="_blank"></a>

本文轉自chengong1013 51CTO部落格,原文連結:http://blog.51cto.com/purify/1847456,如需轉載請自行聯系原作者

繼續閱讀