檢視程序狀态
ps:Process State
支援兩種風格
sysV風格:-
BSD風格:
a:所有與終端有關的程序
u:以使用者為主的程序狀态
x:所有與終端無關的程序
<code>[root@localhost ~]</code><code># ps aux #BSD風格</code>
<code>USER PID %CPU %MEM VSZ RSS TTY STAT START TIME COMMAND</code>
<code>root 8228 0.0 0.3 251964 5932 ? Sl 2016 3:39 </code><code>/sbin/rsyslogd</code> <code>-i </code><code>/var/run/syslogd</code><code>.pid -c 5</code>
<code>root 8315 0.0 0.0 93132 884 ? S<sl 2016 4:03 auditd</code>
<code>root 8389 0.0 0.0 21108 492 ? Ss 2016 0:00 </code><code>/usr/sbin/atd</code>
<code>rpc 8507 0.0 0.0 18980 916 ? Ss 2016 0:04 rpcbind -w</code>
<code>root 8562 0.0 0.1 188972 3364 ? Ss 2016 0:00 cupsd -C </code><code>/etc/cups/cupsd</code><code>.conf</code>
<code>root 8820 0.0 0.1 182888 2392 ? Ss 2016 0:00 </code><code>/usr/sbin/abrtd</code>
<code>root 8840 0.0 0.1 180740 3028 ? Ss 2016 0:00 abrt-dump-oops -d </code><code>/var/spool/abrt</code> <code>-rwx </code><code>/var/log/messages</code>
<code>rpcuser 19518 0.0 0.0 23352 1388 ? Ss 2016 0:00 rpc.statd</code>
<code>root 20127 0.0 0.0 11228 1512 ? S< 2016 0:00 </code><code>/sbin/udevd</code> <code>-d</code>
<code>root 20128 0.0 0.0 11092 1116 ? S< 2016 0:00 </code><code>/sbin/udevd</code> <code>-d</code>
USER 使用者名
UID 使用者ID(User ID)
PID 程序ID(Process ID)
PPID 父程序的程序ID(Parent Process id)
SID 會話ID(Session id)
%CPU 程序的cpu占用率
%MEM 程序的記憶體占用率
VSZ 程序所使用的虛存的大小(Virtual Size)
RSS 程序使用的駐留集大小或者是實際記憶體的大小,Kbytes位元組。
TTY 與程序關聯的終端(tty)
STAT 程序的狀态:程序狀态使用字元表示的(STAT的狀态碼)
TIME 運作時間(占用cpu時長)
COMMAND 發起的指令,帶[]的程序表示為核心線程
ps程序狀态:
D:不可中斷的睡眠
R:運作或就緒
S:可中斷的睡眠
T:停止
Z:僵死
<:高優先級程序
N:低優先級程序
+:前台程序組中的程序
l:多線程程序
s:會話程序的父程序
<code>[root@localhost ~]</code><code># ps -elf #sysV風格</code>
<code>F S UID PID PPID C PRI NI ADDR SZ WCHAN STIME TTY TIME CMD</code>
<code>5 S root 8228 1 0 80 0 - 62991 poll_s 2016 ? 00:03:39 </code><code>/sbin/rsyslogd</code> <code>-i </code><code>/var/run/syslogd</code><code>.pid -c 5</code>
<code>5 S root 8315 1 0 76 -4 - 23283 ep_pol 2016 ? 00:04:03 auditd</code>
<code>5 S root 8389 1 0 80 0 - 5277 hrtime 2016 ? 00:00:00 </code><code>/usr/sbin/atd</code>
<code>5 S rpc 8507 1 0 80 0 - 4745 poll_s 2016 ? 00:00:04 rpcbind -w</code>
<code>4 S root 8562 1 0 80 0 - 47243 ep_pol 2016 ? 00:00:00 cupsd -C </code><code>/etc/cups/cupsd</code><code>.conf</code>
<code>1 S root 8820 1 0 80 0 - 45722 poll_s 2016 ? 00:00:00 </code><code>/usr/sbin/abrtd</code>
<code>0 S root 8840 1 0 80 0 - 45185 inotif 2016 ? 00:00:00 abrt-dump-oops -d </code><code>/var/spool/abrt</code> <code>-rwx </code><code>/var/log/messages</code>
<code>5 S rpcuser 19518 1 0 80 0 - 5838 poll_s 2016 ? 00:00:00 rpc.statd</code>
<code>5 S root 20127 4992 0 78 -2 - 2807 poll_s 2016 ? 00:00:00 </code><code>/sbin/udevd</code> <code>-d</code>
<code>5 S root 20128 4992 0 78 -2 - 2773 poll_s 2016 ? 00:00:00 </code><code>/sbin/udevd</code> <code>-d</code>
pgrep:
pgrep指令以名稱為依據從運作程序隊列中查找程序,并顯示查找到的程序id。每一個程序ID以一個十進制數表示。常用于腳本擷取id号
-o:僅顯示找到的最小(起始)程序号;
-n:僅顯示找到的最大(結束)程序号;
-l:顯示程序名稱; -P:指定父程序号;
-g:指定程序組;
-t:指定開啟程序的終端;
-u:指定程序的有效使用者ID。
pidof:根據程序名稱,查找相關id的pid号
top:動态查詢主機性能
<code>[root@localhost ~]</code><code># top</code>
<code>top</code> <code>- 19:28:41 up 26 days, 7:04, 1 user, load average: 0.07, 0.02, 0.00</code>
<code>Tasks: 94 total, 1 running, 93 sleeping, 0 stopped, 0 zombie</code>
<code>Cpu(s): 0.0%us, 0.0%sy, 0.0%ni,100.0%</code><code>id</code><code>, 0.0%wa, 0.0%hi, 0.0%si, 0.0%st</code>
<code>Mem: 1914492k total, 1890628k used, 23864k </code><code>free</code><code>, 182376k buffers</code>
<code>Swap: 1048568k total, 156k used, 1048412k </code><code>free</code><code>, 1460496k cached</code>
<code> </code><code>PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND </code>
<code> </code><code>2507 root 20 0 98.4m 3868 2928 S 0.3 0.2 0:00.02 sshd </code>
<code> </code><code>2509 root 20 0 15032 1220 940 R 0.3 0.1 0:00.01 </code><code>top</code>
<code> </code><code>1 root 20 0 19348 1440 1200 S 0.0 0.1 0:34.45 init </code>
<code> </code><code>2 root 20 0 0 0 0 S 0.0 0.0 0:00.00 kthreadd </code>
<code> </code><code>3 root RT 0 0 0 0 S 0.0 0.0 0:00.50 migration</code><code>/0</code>
<code> </code><code>4 root 20 0 0 0 0 S 0.0 0.0 0:00.97 ksoftirqd</code><code>/0</code>
<code>top</code> <code>- 19:28:41 :目前時間</code>
<code>up 26 days, 7:04:表示主機運作時長為26天7小時4分</code>
<code>1 user:登入使用者數</code>
<code>load average: 0.07, 0.02, 0.00:平均1分鐘、5分鐘、15分鐘的隊列長度平均值,越小表示cpu負載越低</code>
<code>Tasks: 94 total:程序總數</code>
<code>1 running: 1個處于運作的,根據cpu核數</code>
<code>93 sleeping:93個睡眠狀态的</code>
<code>0 stopped, 0 zombie:0個停止的程序,0個僵死程序</code>
<code>Cpu(s):cpu負載情況,按1鍵展示所有cpu負載</code>
<code>0.0%us:使用者空間的使用者程序占用的百分比</code>
<code>0.0%sy:核心空間的使用者程序占用的百分比</code>
<code>0.0%ni:調整</code><code>nice</code><code>值後影響的百分比</code>
<code>100.0%</code><code>id</code><code>:空閑的cpu百分比</code>
<code>0.0%wa:等待io占用的百分比</code>
<code>0.0%hi:硬體中斷占用的</code>
<code>0.0%si:軟中斷占用的</code>
<code>0.0%st:被偷走的cpu</code>
<code>Mem:記憶體使用資訊</code>
<code>total:總記憶體數</code>
<code>used:以使用記憶體</code>
<code>free</code><code>:空閑記憶體</code>
<code>buffers:buffers數</code>
<code>Swap:交換空間使用情況。和Mem行一緻</code>
<code>PID:程序pid</code>
<code>USER:運作使用者</code>
<code>PR:程序優先級,RT表示實時優先級</code>
<code>NI:</code><code>nice</code><code>值</code>
<code>VIRT:虛拟記憶體集</code>
<code>RES:常駐記憶體集</code>
<code>SHR:共享記憶體集</code>
<code>S:狀态</code>
<code>%CPU:占用cpu百分比</code>
<code>%Mem:占用記憶體百分比</code>
<code>TIME:程序在cpu運作時長</code>
<code>COMMAND:程序指令</code>
top常用的互動指令,在top指令界面敲下面的指令
M:根據駐留記憶體大小進行排序
P:根據CPU使用百分比排序
T:根據累計時間進行排序
l:是否顯示平均負載和啟動時間,即top第一行
t:是否顯示程序的cpu狀态相關資訊,即top第二行
m:是否顯示記憶體相關資訊,即top第三行
c:是否顯示完整的指令行資訊
q:退出top
k:終止某個程序
-d:指定延遲時長
-b:整屏模式
-n #:共顯示多少屏
程序間通信方式(IPC:inter process communication)
共享記憶體
信号:signal
samaphore
kill:終止程序運作
-l:檢視所有kill信号
1、SINGHUP:讓程序不需重新開機,就可重讀配置檔案,讓新配置檔案生效
2、SIGINT:終斷一個前台程序
9、SIGKILL:殺死一個程序
15、SIGTERM:終止一個程序,在關閉打開檔案後終止程序,預設信号,即kill 程序号
<code>[root@localhost ~]</code><code># kill -l</code>
<code> </code><code>1) SIGHUP 2) SIGINT 3) SIGQUIT 4) SIGILL 5) SIGTRAP</code>
<code> </code><code>6) SIGABRT 7) SIGBUS 8) SIGFPE 9) SIGKILL 10) SIGUSR1</code>
<code>11) SIGSEGV 12) SIGUSR2 13) SIGPIPE 14) SIGALRM 15) SIGTERM</code>
<code>16) SIGSTKFLT 17) SIGCHLD 18) SIGCONT 19) SIGSTOP 20) SIGTSTP</code>
<code>21) SIGTTIN 22) SIGTTOU 23) SIGURG 24) SIGXCPU 25) SIGXFSZ</code>
<code>26) SIGVTALRM 27) SIGPROF 28) SIGWINCH 29) SIGIO 30) SIGPWR</code>
<code>31) SIGSYS 34) SIGRTMIN 35) SIGRTMIN+1 36) SIGRTMIN+2 37) SIGRTMIN+3</code>
<code>38) SIGRTMIN+4 39) SIGRTMIN+5 40) SIGRTMIN+6 41) SIGRTMIN+7 42) SIGRTMIN+8</code>
<code>43) SIGRTMIN+9 44) SIGRTMIN+10 45) SIGRTMIN+11 46) SIGRTMIN+12 47) SIGRTMIN+13</code>
<code>48) SIGRTMIN+14 49) SIGRTMIN+15 50) SIGRTMAX-14 51) SIGRTMAX-13 52) SIGRTMAX-12</code>
<code>53) SIGRTMAX-11 54) SIGRTMAX-10 55) SIGRTMAX-9 56) SIGRTMAX-8 57) SIGRTMAX-7</code>
<code>58) SIGRTMAX-6 59) SIGRTMAX-5 60) SIGRTMAX-4 61) SIGRTMAX-3 62) SIGRTMAX-2</code>
<code>63) SIGRTMAX-1 64) SIGRTMAX </code>
kill PID
killall COMMAND
前台程序:占據指令提示符
背景作業:啟動之後釋放指令提示符,操作在背景完成
前台-->背景
Ctrl+z:把正在前天的作業送往背景,預設進入背景為Stopped狀态
COMMAND &:讓指令在背景執行
bg:讓背景的停止作業繼續運作.
bg JOBID:使用方法
fg:讓背景的作業調回到前台運作
fg JOBID:使用方法
kill %JOBID:終止某作業
jobs:檢視背景所有作業,作業号不同于程序号。
+:指令将預設操作的作業
-:指令将第二個預設操作的作業
vmstat:系統狀态檢視指令
vmstat 1:每隔1秒鐘顯示一次
vmstat 1 5:每隔1秒鐘顯示一次,但隻顯示一次
<code>[root@localhost ~]</code><code># vmstat </code>
<code>procs -----------memory---------- ---swap-- -----io---- --system-- -----cpu-----</code>
<code> </code><code>r b swpd </code><code>free</code> <code>buff cache si so bi bo </code><code>in</code> <code>cs us sy </code><code>id</code> <code>wa st</code>
<code> </code><code>0 0 156 24756 182376 1461016 0 0 0 4 6 2 0 0 99 0 0</code>
procs:程序相關
r:運作隊列長度
b:阻塞隊列長度
memory:記憶體相關資訊
swpd:交換大小
free:空閑大小
buff:緩沖區大小
cache:緩存區大小
swap:在vmstat運作期間交換空間相關
si:實體記憶體到swap空間交換的頁面
so:swap空間到實體記憶體交換的頁面
bi:磁盤塊調入到實體記憶體中
bo:實體記憶體調入到磁盤塊中
system
in:中斷的個數
cs:vmstat運作周期上下文切換的次數
cpu
us:使用者空間占用的百分比
sy:核心空間占用的百分比
id:空閑百分比
wa:等待io占用百分比
uptime:檢視系統登入時間和系統負載
本文轉自 亮公子 51CTO部落格,原文連結:http://blog.51cto.com/iyull/1890213