天天看點

生産環境之“程序”兩字

一、程序概念

運作中的程式的一個副本,是被載入記憶體的一個指令集合 程序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:

htop:

欄目資訊:

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 顯示父程序為此處指定的程序的 程序清單

來源:馬哥教育

官方微信:magedu-linux

繼續閱讀