毫無疑問程序管理是很重要的,當我們的作業系統很忙碌,執行的程序很多,但是可能有好幾個程序是沒有用的,那麼我們是不是要找出這樣的程序然後結束它。如果有很多個沒用的程序一直在記憶體中,導致記憶體使用量過大,後面的程序可能就會沒有辦法執行。
例如,當我們要定時執行某乙個指令碼任務,但是,如果指令碼執行完程序並沒有退出,而你的執行頻率又很快,幾分鐘或者幾秒鐘,那可就悲劇了,走過的坑。。。
ps命令是process status的縮寫,它會列出記憶體中正在執行的程式的運**況的快照。ps命令可以跟很多引數來過濾我們需要檢視的某個或者某些程序。
1.列出記憶體中的所有程式
ps -aux
2.列出指定使用者的程序ps -u root
3.列出程序資訊的指定字段ps -o pid
4.排序
按記憶體佔用量排序
ps auxw --sort=rss
5.取前十條ps auxw --sort=rss|head -10
ps -aux|grep node
%mem: 占用的物理記憶體百分比
vsz: 占用的虛擬記憶體量
rss: 占用的實際記憶體量
相對於ps選取某個時間點的程序狀態,top可以持續的檢測程序的運**況。
top後面常跟的幾個引數
-d後面可以跟描述,表示多長時間更新一次時間。
-n表示需要進行幾次top輸出。
-p檢視某個pid的運**況。
top在執行過程中可以執行一些命令。
p 以cpu的使用資源多少排序顯示。
n 以pid來排序。
m 以記憶體的使用排序。
k 給予某個pid乙個訊號。
r 重置某個pid的nice值。
q 離開top。
我們不僅僅要檢視程序,而且要對程序進行管理,那麼程序之間是如何相互管理的呢,細想下來,只要涉及到管理,肯定要發出指令,對程式的管理也不例外。通過賦予某個程序乙個訊號告訴程序你想要做的事就可以啦。我們可以通過kill -l檢視所有的指令及其代號。
描述這裡我們列出主要的幾個:
sighup啟動被終止的命令。(1)
sigint終止乙個程序, 類似於鍵盤輸入ctrl + c。(2)
sigkill強制終端乙個程序,如果該程序執行到一半,也會停止。(9)
sigterm正常結束乙個程序。(15)
sigstop相當於鍵盤輸入ctrl + z來暫停乙個程序的進行。(17)
下面補充一下ctrl[c, z]的區別。
ctrl-c 傳送 sigint 訊號給前台程序組中的所有程序。常用於終止正在執行的程式。而命令的執行是需要有乙個通知者和接受物件的ctrl-z 傳送 sigtstp 訊號給前台程序組中的所有程序,常用於掛起乙個程序。
kill -signal pid kill命令會將signal這個指令傳送給該pid。
free
-a列出系統相關資訊,包括以下資訊都列出來。
-s系統核心名稱。
-r核心的版本。
-m系統硬體名稱。
-i硬體平台。
LINUX程序管理
1.程序是什麼?乙個程序就是出於執行期的程式,包括 可執行程式 段 開啟的檔案,掛起的訊號,核心內部資料,處理器狀態,位址空間,乙個或多個執行執行緒,當然還包括用來存放全域性變數的資料段,等等.2.什麼是執行緒?它和程序的關係是什麼樣的?執行緒在linux中具體是怎麼樣實現的?是在程序中活動的物件,...
linux程序管理
程序的監控 使用ps aux 檢視當前所有程序。可以使用top檢視當前程序自動更新列表,在top中m 按記憶體大小排列,p 按cpu佔用率排列 終止和管理程序 程序之間通過訊號來進行通訊 top和kill都用於向程序傳送訊號。kill l顯示訊號編號表。kill 9 pid kill pid 向pi...
Linux 程序管理
1.linux程序管理工具,包括ps pgrep top kill killall pkill 等 常用 ps aux 或lax輸出的解釋 user 程序的屬主 pid 程序的id ppid 父程序 cpu 程序占用的cpu百分比 mem 占用記憶體的百分比 ni 程序的nice值,數值大,表示較少...