linux進程管理

進程管理 ios


進程 Process vim


某應用程序打開的進程 bash

PID Process ID服務器

類型: 多線程

用戶空間進程 app

內核空間進程 less



靜態查看進程的狀態ide


# ps性能


[root@localhost ~]# ps >>>>查看本終端的進程 spa

  PID TTY          TIME CMD

 4206 pts/0    00:00:00 bash

 4378 pts/0    00:00:00 ps



選項的使用方式:

BSD風格:選項沒有橫線- ps aux

SysV風格:選項須要帶有橫線-   ps -elf



BSD風格: 


a 顯示與終端相關的進程

u 顯示啓動進程的用戶

x 顯示與終端無關的進程

root@localhost ~]# ps a

  PID TTY      STAT   TIME COMMAND

 3303 tty2     Ss+    0:00 /sbin/mingetty /dev/tty2

 3305 tty3     Ss+    0:00 /sbin/mingetty /dev/tty3



[root@localhost ~]# ps u

USER       PID %CPU %MEM    VSZ   RSS TTY      STAT START   TIME COMMAND

root      3303  0.0  0.0   4064   544 tty2     Ss+  09:06   0:00 /sbin/mingetty /dev/tty2

root      3305  0.0  0.0   4064   544 tty3     Ss+  09:06   0:00 /sbin/mingetty /dev/tty3


USER 運行進程的用戶 

%CPU 進程所佔用的CPU百分比

%MEM 進程所打敗的MEM百分比

VSZ 虛擬內存集,進程獨有的內存+共享存在

RSS 進程獨有的內存 


STAT 進程的狀態


D:不可中斷的睡眠 (等待磁盤IO完成)

S:可中斷的睡眠(不須要等待磁盤IO完成) 

R:運行或就緒

T:中止

Z:僵死 Zombie

<:高優先級進程 

會被CPU優先執行

會獲取更多的CPU執行時間

N:低優先級進程 

+:前臺進程組中的進程 

l:多線程進程(Thread)

s:會話進程首進程,某一個鏈接的父進程 



[root@localhost ~]# ps aux | less 

USER       PID %CPU %MEM    VSZ   RSS TTY      STAT START   TIME COMMAND

root         1  0.0  0.0  19364  1536 ?        Ss   09:05   0:00 /sbin/init

root         2  0.0  0.0      0     0 ?        S    09:05   0:00 [kthreadd]

root         3  0.0  0.0      0     0 ?        S    09:05   0:00 [migration/0]

root         4  0.0  0.0      0     0 ?        S    09:05   0:00 [ksoftirqd/0]


帶有方括號爲系統進行(Linux內核啓動)

無方括號的(用戶進程)


[root@localhost ~]# ps aux | grep vim

root      5550  0.2  0.0 143972  3760 pts/2    S+   10:25   0:00 vim /etc/fstab

root      5564  0.0  0.0 103260   860 pts/0    S+   10:25   0:00 grep --color vim



SysV風格選項:


-e 顯示全部進程

-l 詳細信息

-f 以長格式顯示(更多字段內容)



[root@localhost ~]# ps -elf | less


F S UID        PID  PPID  C PRI  NI ADDR SZ WCHAN  STIME TTY          TIME CMD

4 S root         1     0  0  80   0 -  4841 poll_s 09:05 ?        00:00:00 /sbin/init

1 S root         2     0  0  80   0 -     0 kthrea 09:05 ?        00:00:00 [kthreadd]

1 S root         3     2  0 -40   - -     0 migrat 09:05 ?        00:00:00 [migration/0]

1 S root         4     2  0  80   0 -     0 ksofti 09:05 ?        00:00:00 [ksoftirqd/0]

1 S root         5     2  0 -40   - -     0 cpu_st 09:05 ?        00:00:00 [stopper/0]

5 S root         6     2  0 -40   - -     0 watchd 09:05 ?        00:00:00 [watchdog/0]

1 S root         7     2  0 -40   - -     0 migrat 09:05 ?        00:00:00 [migration/1]


進程優先級:


0----139

數據越小,越先級越高 


高優先級進程:

獲取CPU更多的執行時間

會被CPU優先執行


nice值:


新優先級=舊優先級+NICE值


-20----19 

普通用戶僅可以調大nice值,即下降進程優先級

root用戶可隨意調整nice值


顯示進程樹 


[root@localhost ~]# pstree

init─┬─abrtd

     ├─acpid

     ├─atd

     ├─auditd───{auditd}

     ├─automount───4*[{automount}]

     ├─bonobo-activati───{bonobo-activat}

     ├─certmonger

     ├─clock-applet

     ├─console-kit-dae───63*[{console-kit-da}]

     ├─crond



顯示進程PID  


[root@localhost ~]# pidof vim

5696

[root@localhost ~]# 




動態查看進程的狀態 


# top 


top - 10:53:46 up  1:48,  3 users,  load average: 0.12, 0.19, 0.16

Tasks: 239 total,   2 running, 237 sleeping,   0 stopped,   0 zombie

Cpu(s):  7.6%us,  1.6%sy,  0.0%ni, 90.6%id,  0.0%wa,  0.0%hi,  0.2%si,  0.0%st

Mem:  16084568k total,  2529012k used, 13555556k free,    70044k buffers

Swap:  8388604k total,        0k used,  8388604k free,   626388k cached


7.6%us 用戶進程佔用的CPU

1.6%sy   系統進程佔用的CPU

0.0%ni 調整過優先級的進程佔用的CPU

90.6%id CPU空閒

0.0%wa 等待磁盤IO的進程所佔用的CPU

Cpu(s):顯示全部CPU平均比,按1可顯示每顆CPU的使用狀況



top交互式指令 :


M:按內存使用排序

P:按CPU使用排序

T:按運行時間排序 

l:是否顯示TOP第1行信息

m:是否顯示內存使用信息

t:是否顯示CPU及任務信息


c:是否顯示完整的命令行

q:退出TOP



顯示當前時刻CPU的使用狀況


[root@localhost ~]# uptime 

 11:00:25 up  1:54,  3 users,  load average: 0.39, 0.26, 0.19



top選項:


-d 1:指定top信息刷新的頻率

-b:以批模式顯示進程信息

-n 2:共顯示兩批信息 


# top -d 1 -b -n 2 



查看服務器性能:


一、ps, top 

二、df -hT 

三、free -m 

[root@localhost ~]# uptime 

 11:39:00 up  3:24,  4 users,  load average: 0.00, 0.01, 0.05


# mpstat 查看 CPU 

# vmstat 查看內存 

# iostat 查看磁盤


[root@localhost ~]# rpm -qf /usr/bin/iostat 

sysstat-10.1.5-7.el7.x86_64

[root@localhost ~]# 





進程控制


信號:Signal



查看全部信號 


[root@localhost ~]# kill -l

 1) SIGHUP 2) SIGINT 3) SIGQUIT 4) SIGILL 5) SIGTRAP

 6) SIGABRT 7) SIGBUS 8) SIGFPE 9) SIGKILL 10) SIGUSR1

11) SIGSEGV 12) SIGUSR2 13) SIGPIPE 14) SIGALRM 15) SIGTERM

16) SIGSTKFLT 17) SIGCHLD 18) SIGCONT 19) SIGSTOP 20) SIGTSTP

21) SIGTTIN 22) SIGTTOU 23) SIGURG 24) SIGXCPU 25) SIGXFSZ

26) SIGVTALRM 27) SIGPROF 28) SIGWINCH 29) SIGIO 30) SIGPWR

31) SIGSYS 34) SIGRTMIN 35) SIGRTMIN+1 36) SIGRTMIN+2 37) SIGRTMIN+3

38) SIGRTMIN+4 39) SIGRTMIN+5 40) SIGRTMIN+6 41) SIGRTMIN+7 42) SIGRTMIN+8

43) SIGRTMIN+9 44) SIGRTMIN+10 45) SIGRTMIN+11 46) SIGRTMIN+12 47) SIGRTMIN+13

48) SIGRTMIN+14 49) SIGRTMIN+15 50) SIGRTMAX-14 51) SIGRTMAX-13 52) SIGRTMAX-12

53) SIGRTMAX-11 54) SIGRTMAX-10 55) SIGRTMAX-9 56) SIGRTMAX-8 57) SIGRTMAX-7

58) SIGRTMAX-6 59) SIGRTMAX-5 60) SIGRTMAX-4 61) SIGRTMAX-3 62) SIGRTMAX-2

63) SIGRTMAX-1 64) SIGRTMAX



經常使用信號:

1  SIGHUP:讓一個進程不用重啓,就能夠重讀其配置文件,並讓新配置生效  

2  SIGINT:硬件中斷信號,ctrl+c 

9  SIGKILL:殺死一個進程

15 SIGTERM:終止一個進程


如何調用一個信號?


信號號碼:kill -9 <PID>

信號名稱:kill -SIGKILL <PID>

信號名稱簡寫:kill -KILL <PID>


# kill <PID> 


# killall <PROCESS_NAME>




控制進程的運行方式(前臺/後臺)


前臺: 佔用命令提示符 


1) 控制命令在後臺運行 


# command & 


[root@localhost ~]# firefox &



2) 查看後臺的應用程序 


[root@localhost ~]# jobs -l

[1]+ 12066 Running                 firefox &



3) 將正在運行的指令放入後臺,並暫停運行 


ctrl+z 


4) 將後臺的程序調回前臺繼續運行 


# fg <後臺任務編號>


[root@localhost ~]# fg 1

相關文章
相關標籤/搜索