Linux 进程管理工具
Linux進程管理命令:
?? ?pstree、ps、top、pidof、htop、glances、pmap、vmstat、dstat、kill、pkill、job、bg、fg、nohup、pgrep、
?? ?
?? ?pstree:display a tree of processes
?? ?ps:report a snapshot of the current processes.
?? ??? ?Linux系統上運行中的各個進程的相關信息都保存在/proc/PID目錄下的各文件中;
?? ??? ??? ?所以這些狀態查看工具無非都是通過查看這些目錄下的相關文件來實現的;
?? ??? ?ps [options…]
?? ??? ??? ?支持兩種風格的選項:加"-"和不加"-"
?? ??? ??? ?常用組合:
?? ??? ??? ??? ?u:以用戶為中心組織進程狀態信息顯示;
?? ??? ??? ??? ?a:與終端相關的進程;
?? ??? ??? ??? ?x:與終端無關的進程;
?? ??? ??? ?~]#ps aux
?? ??? ??? ??? ?USER??? PID???????? %CPU???????????? %MEM???????? VSZ????????????????????? RSS??????? TTY?????? STAT??? START?? TIME???????? COMMAND
?? ??? ??? ??? ?屬主???? 進程號? 使用cup時間百分比? 使用內存百分比?? 已用虛擬內存大小?? 常駐內存集?? 終端類型?? 進程狀態??? 啟動時間? 累計占用CPU的時間?? 由哪個命令?????????????????????????? 啟動的
?? ??? ??? ??? ??? ?VSZ:Virtual memory Size 虛擬內存大小,進程在其線性地址空間占用的內存大小;
?? ??? ??? ??? ??? ??? ?虛擬/線性內存集
?? ??? ??? ??? ??? ?RSS:ReSident Size 常駐內存大小;
?? ??? ??? ??? ??? ??? ?常駐內存集
?? ??? ??? ??? ??? ??? ?虛擬內存集大小一般大于常駐內存集大小,除了常駐內存集的數據剩下的都可以被交換到swap分區中;
?? ??? ??? ??? ??? ?TTY:通過哪個終端啟動的
?? ??? ??? ??? ??? ??? ??:與終端無關;
?? ??? ??? ??? ??? ?STAT:進程狀態
?? ??? ??? ??? ??? ??? ?幫助:man ps
?? ??? ??? ??? ??? ??? ?R:running
?? ??? ??? ??? ??? ??? ?S:可中斷的sleeping
?? ??? ??? ??? ??? ??? ?D:不可中斷的sleeping
?? ??? ??? ??? ??? ??? ?T:stopped
?? ??? ??? ??? ??? ??? ?Z:僵死態
?? ??? ??? ??? ??? ??? ?+:前臺進程
?? ??? ??? ??? ??? ??? ?l:多線程進程
?? ??? ??? ??? ??? ??? ?N:低優先級進程
?? ??? ??? ??? ??? ??? ?<:高優先級進程
?? ??? ??? ??? ??? ??? ?s:session leader
?? ??? ??? ?~]#ps -ef
?? ??? ??? ??? ?-e:顯示所有進程
?? ??? ??? ??? ?-f:顯示完整格式的程序信息
?? ??? ??? ?~]#ps -ejH
?? ??? ??? ??? ?已進程層級格式顯示進程相關信息
?? ??? ??? ?~]#ps -eFH
?? ??? ??? ??? ?相對于上一個命令組合顯示更完整的格式的進程信息
?? ??? ??? ?~]#ps -U username
?? ??? ??? ??? ?顯示某用戶的運行的進程
?? ??? ??? ?~]#ps stat,euid,ruid,tty,tpgid,sess,pgrp,ppid,pid,pcpu,comm,…
?? ??? ??? ??? ?顯示指定選項
?? ??? ??? ??? ?pri:優先級
?? ??? ??? ??? ?ni:nice
?? ??? ??? ??? ?psr:processor,運行在哪顆CPU上;
?? ?pgrep、pkill:look up or signal processes based on name and other attributes
?? ??? ?pgrep [options] pattern
?? ??? ?pkill [options] pattern
?? ??? ??? ?-u uid:effective? user
?? ??? ??? ?-U uid:real user
?? ??? ??? ?-t terminal:與指定終端相關的進程
?? ??? ??? ?-l:顯示進程名
?? ??? ??? ?-a:完整格式的進程名
?? ??? ??? ?-P:顯示其父進程為此處指定的進程的進程列表
?? ?pidof:find the process ID of a running program.
?? ??? ?根據進程名獲取其PID
?? ?top:display Linux processes
?? ??? ?選項:
?? ??? ??? ?-d:指定刷新時間間隔,默認為3s;
?? ??? ??? ?-b:以批次方式顯示,從第一屏刷到最后一屏;
?? ??? ??? ?-n #:顯示多少批次;
?? ??? ?有許多內置命令
?? ??? ??? ?排序:
?? ??? ??? ??? ?P:以占據的CPU百分比排序;
?? ??? ??? ??? ?M:以占用的內存百分比排序;
?? ??? ??? ??? ?T:以累計占用CPU時長排序;
?? ??? ??? ?修改刷新時間間隔:s+鍵入秒數;
?? ??? ??? ?中止指定進程:k+進程號;
?? ??? ?信息顯示:
?? ??? ??? ?1:Def - 22:12:23 up 12:38,? 2 users,? load average: 0.00, 0.01, 0.05? =》? uptime
?? ??? ??? ??? ?系統時間??????????? 主機已運行時間? 使用者數量??????? 負載均衡????????? 一分鐘? 五分鐘? 十五分鐘????????? 使用"l"可以隱藏第一行信息
?? ??? ??? ?Tasks: 100 total,?? 1 running,? 99 sleeping,?? 0 stopped,?? 0 zombie
?? ??? ??? ?進程總數量???????????????????????????? 運行中的進程??? 睡眠中的進程?????????? 停止的進程???????? 僵死的進程
?? ??? ??? ?%Cpu(s):????????????????? 0.0 us,?????????? 3.1 sy,?? 0.0 ni,? 96.9 id,? 0.0 wa,????????? 0.0 hi,???? 0.0 si,????? 0.0 st
?? ??? ??? ?CPU的使用情況??? 用戶空間程序占據的百分比?? 內核空間?????? nice????????? 空閑的???????? 等待IO完成時間??? 硬件中斷??? 軟件中斷???? 虛擬機竊取的時間???? 使用"1"可以顯示多個cpu
?? ??? ??? ?KiB Mem :? 1867048 total,? 1515904 free,??? 86300 used,?? 264844 buff/cache
?? ??? ??? ? 內存使用情況??????? 物理內存總大小??????????????? 空閑空間????????????????? 已使用內存???????? 已使用的緩沖和緩存占據的空間
?? ??? ??? ?KiB Swap:? 2097148 total,? 2097148 free,??????? 0 used.? 1550164 avail Mem????? =》free -m
?? ??? ??? ?交換分區使用情況?? 總空間大小????????? 空間交換空間??????????????? 已使用交換空間????????? 物理內存可使用空間?????????????????????????? ?
?? ??? ??? ?1?? PID USER????? PR??? NI??? VIRT???????? RES?????? SHR???????? S????? %CPU???????? %MEM???? TIME+?? COMMAND??????????????????????????????????????????? ?
?? ??? ????????????? 進程號? 屬主????????? 優先級???? nice????? 虛擬內存集? 常駐內存集? 共享內存大小? 狀態?? 占據CPU百分比? 占據內存百分比? 累計運行時長??????? 啟動命令
?? ??? ?退出:q
?? ?htop:interactive process viewer???? 界面美觀
?? ??? ?安裝htop:
?? ??? ??? ?tar -zxvf htop-1.0.2.tar.gz
?? ??? ??? ?cd htop-1.0.2.tar.gz
?? ??? ??? ?yum groups install Development\ Tools
?? ??? ??? ?yum install ncurses-devel.x86_64
?? ??? ??? ?./configure
?? ??? ??? ?make
?? ??? ??? ?make install
?? ??? ?選項:
?? ??? ??? ?s:跟蹤選定進程的系統調用;
?? ??? ??? ?l:顯示選定進程打開的文件列表;
?? ??? ??? ?a:將選定進程綁定至某指定cpu核心;
?? ??? ?幫助:man htop、top界面鍵入h
?? ?vmstat:Report virtual memory statistics
?? ??? ?vmstat [options] [delay [count]]
?? ??? ?各字段信息:
?? ??? ??? ?procs:
?? ??? ??? ??? ?r:等待運行的進程數;
?? ??? ??? ??? ?b:處于不可中斷睡眠態的進程數(被阻塞的隊列的長度);
?? ??? ??? ?memory:
?? ??? ??? ??? ?swpd:交換內存的使用總量;
?? ??? ??? ??? ?free:空間物理內存的總量;
?? ??? ??? ??? ?buffer:用于buffer的內存總量;
?? ??? ??? ??? ?cache:用于cache的內存總量;
?? ??? ??? ?swap:
?? ??? ??? ??? ?si:數據從swap到內存的速率(Kb/s);
?? ??? ??? ??? ?so:數據從內存進入swap的速率(Kb/s);
?? ??? ??? ?io:
?? ??? ??? ??? ?bi:從塊設備讀入數據到系統中的速率(Kb/s);
?? ??? ??? ??? ?bo:保存數據到塊設備的速率(Kb/s);
?? ??? ??? ?system:
?? ??? ??? ??? ?in:終端速率(Kb/s);
?? ??? ??? ??? ?cs:進程/上下文切換速率(Kb/s);
?? ??? ??? ?cpu:
?? ??? ??? ??? ?us:用戶空間占據CPU的時間比例;
?? ??? ??? ??? ?sy:內核空間占據CPU的時間比例;
?? ??? ??? ??? ?id:空閑時間比例;
?? ??? ??? ??? ?wa:等待IO完成所需要的時間比例;
?? ??? ??? ??? ?st:被vm竊取的時間比例
?? ??? ?選項:
?? ??? ??? ?-s:顯示內存的統計數據信息;
?? ?pmap:report memory map of a process
?? ??? ?pmap [options] pid [...]? =》cat /proc/PID/maps
?? ??? ?選項:
?? ??? ??? ?-x:以擴展格式顯示;
?? ?glances:
?? ??? ?幫助:man glances
?? ??? ??? ?可以查看內建命令;
?? ??? ?常用選項:
?? ??? ??? ?-b:以Byte為單位顯示網卡數據速率;
?? ??? ??? ?-d:關閉磁盤IO模塊;
?? ??? ??? ?-f /path/to/somefile:設定輸入文件位置;
?? ??? ??? ?-o {HTML|CSV}:輸出格式;
?? ??? ??? ?-m:禁用mount模塊;
?? ??? ??? ?-n:禁用網路模塊;
?? ??? ??? ?-t # :延遲時間間隔;
?? ??? ??? ?-1:每個cpu的相關數據單獨顯示;
?? ??? ?C/S模式下運行glances命令:
?? ??? ??? ?服務模式:
?? ??? ??? ??? ?glances -s -B IPADDR(指明監聽于本機的哪個地址)
?? ??? ??? ?客戶端模式:
?? ??? ??? ??? ?glances -c IPADDR(指明服務器端的地址)
?? ?dstat:versatile tool for generating system resource statistics
?? ??? ?選項:
?? ??? ??? ?-c:顯示CPU相關信息;
?? ??? ??? ??? ?-C #,#,…,total
?? ??? ??? ?-d:顯示disk相關信息;
?? ??? ??? ??? ?-D total,sda[#],sdb[#],…
?? ??? ??? ?-g:顯示page相關統計信息;
?? ??? ??? ?-m:顯示memory相關統計信息;
?? ??? ??? ?-n:顯示network相關統計信息;
?? ??? ??? ?-p:顯示process相關統計信息;
?? ??? ??? ?-r:顯示io請求的相關統計信息;
?? ??? ??? ?-s:顯示swapped的相關統計信息;
?? ??? ??? ?
?? ??? ??? ?--tcp:顯示tcp相關統計信息;
?? ??? ??? ?--udp:顯示udp相關統計信息;
?? ??? ??? ?--unix:
?? ??? ??? ?--raw:
?? ??? ??? ?--socket:
?? ??? ??? ?--icp:
?? ??? ??? ?
?? ??? ??? ?--top-cpu:顯示最占用CPU的進程;
?? ??? ??? ?--top-mem:顯示最占用內存的進程;
?? ??? ??? ?--top-io:顯示最占用io的進程;
?? ??? ??? ?--tcp-lantency:顯示延遲最大的進程;
?? ?kill:terminate a process
?? ??? ?向進程發送控制信號,以實現對進程的控制;
?? ??? ?顯示當前系統可用進程:
?? ??? ??? ?man 7 signal
?? ??? ??? ?kill -l
?? ??? ??? ?常用信號:
?? ??? ??? ??? ?1)SIGHUP:無需關閉進程而讓其重讀配置文件;
?? ??? ??? ??? ?2)SIGINT:終止正在進行的進程,相當于Ctrl+c;
?? ??? ??? ??? ?9)SIGKILL:殺死正在運行的進程;
?? ??? ??? ??? ?15)SIGTERM:終止正在進行的進程;
?? ??? ??? ?指定信號的方法:
?? ??? ??? ??? ?信號的數字標識:1,2,9,…
?? ??? ??? ??? ?信號完整名稱:SIGHUP,SIGINT,SIGKILL,…
?? ??? ??? ??? ?信號的簡寫名稱:HUP,INT,KILL,…
?? ??? ??? ?向進程發信號:
?? ??? ??? ??? ?kill [-SIGNAL] PID...
?? ??? ??? ?終止名稱之下的所有進程:
?? ??? ??? ??? ?killall [-SIGNAL] Program
?? ?
?? ?Linux的作業控制:
?? ??? ?前臺作業:通過終端啟動,且啟動后一直占據終端;
?? ??? ?后臺作業:可以通過終端啟動,但啟動后即轉入后臺運行(釋放終端);
?? ??? ?如何讓作業運行于后臺?
?? ??? ??? ?運行中的作業
?? ??? ??? ??? ?Ctrl+z:停止
?? ??? ??? ?尚未啟動的作業
?? ??? ??? ??? ?# COMMAND &
?? ??? ??? ??? ??? ?雖然這樣作業被送往后臺而釋放了終端(前端),但是依然與終端相關;
?? ??? ??? ??? ??? ?如果希望送往后臺后,剝離與終端的關系可使用:nohup COMMAND &
?? ??? ?查看所有作業情況:
?? ??? ??? ?jobs
?? ??? ?作業控制:
?? ??? ??? ?fg [[%]JOB_NUM]:將指定的后臺作業調回前臺;
?? ??? ??? ?bg [[%]JOB_NUM]:讓送往后臺的處于停止狀態的進程繼續運行;
?? ??? ??? ?kill [%JOB_NUM]:殺死指定作業號的進程;
?? ?進程優先級調整:
?? ??? ?進程默認啟動時的nice為0,優先級為120;
?? ??? ?nice:run a program with modified scheduling priority
?? ??? ??? ?對啟動時的進程的優先級進程調整;
?? ??? ??? ?nice -n 5 htop
?? ??? ?renice:alter priority of running processes
?? ??? ??? ?renice -n 2 pid
?? ??? ??? ?對啟動后的進程的優先級進程調整;
?? ??? ?在生產環境中,如果某一進程占用cpu過多,內核會根據情況自動降低其優先級;
?? ??? ??? ?
注:根據馬哥視頻做的學習筆記,如有錯誤,歡迎指正;侵刪
?
轉載于:https://www.cnblogs.com/guowei-Linux/p/9787325.html
總結
以上是生活随笔為你收集整理的Linux 进程管理工具的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 擎科试剂盒eluent指的是depc水吗
- 下一篇: SpringMvc CharacterE