生產環境之「程序」兩字

2021-09-04 19:21:05 字數 3048 閱讀 2480

一、程序概念

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

三、程序管理工具

欄目資訊:

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 

終止指定程序: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 顯示父程序為此處指定的程序的 程序列表

生產環境之「程序」兩字

一 程序概念 執行中的程式的乙個副本,是被載入記憶體的乙個指令集合 程序id process id,pid 號碼被用來標記各個程序uid gid 和selinux語境決定對檔案系統的訪問和訪問許可權,通常從執行程序的使用者來繼承 存在生命週期。二 程序狀態 1 執行狀態 running 2 就緒狀態...

Unix程序環境之3 程序環境列表

1 程序環境 簡介當乙個程序 proecss 呼叫另乙個程式 program 時,同時會傳遞這個程式執行的環境列表 environment list 程序環境列表是乙個字元指標陣列,每個字元指標是乙個以空字元 null terminated 結束的c 字串。字元指標陣列位址包含在全域性變數envir...

生產環境docker部署之nginx部署

網上由很多關於docker某種容器的部署命令,比如nginx部署,jar包部署,監控部署等。但個人感覺很多不能達到企業生產化的效果,比如長期執行後的日誌問題,容器的服務的配置等等。因此在這裡記錄一下。nginx作為後端網關的入口,以及內部負載均衡的分發元件,在整個後端服務中是起非常重要的作用。說句題...