linux基礎--進程管理

查看進程狀態

ps:Process State

    支持兩種風格

        sysV風格:-

        BSD風格:

    a:所有與終端有關的進程

    u:以用戶爲主的進程狀態

    x:所有與終端無關的進程

[root@localhost ~]# ps aux    #BSD風格
USER       PID %CPU %MEM    VSZ   RSS TTY      STAT START   TIME COMMAND
root      8228  0.0  0.3 251964  5932 ?        Sl    2016   3:39 /sbin/rsyslogd -i /var/run/syslogd.pid -c 5
root      8315  0.0  0.0  93132   884 ?        S<sl  2016   4:03 auditd
root      8389  0.0  0.0  21108   492 ?        Ss    2016   0:00 /usr/sbin/atd
rpc       8507  0.0  0.0  18980   916 ?        Ss    2016   0:04 rpcbind -w
root      8562  0.0  0.1 188972  3364 ?        Ss    2016   0:00 cupsd -C /etc/cups/cupsd.conf
root      8820  0.0  0.1 182888  2392 ?        Ss    2016   0:00 /usr/sbin/abrtd
root      8840  0.0  0.1 180740  3028 ?        Ss    2016   0:00 abrt-dump-oops -d /var/spool/abrt -rwx /var/log/messages
rpcuser  19518  0.0  0.0  23352  1388 ?        Ss    2016   0:00 rpc.statd
root     20127  0.0  0.0  11228  1512 ?        S<    2016   0:00 /sbin/udevd -d
root     20128  0.0  0.0  11092  1116 ?        S<    2016   0:00 /sbin/udevd -d

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:會話進程的父進程

[root@localhost ~]# ps -elf     #sysV風格
F S UID        PID  PPID  C PRI  NI ADDR SZ WCHAN  STIME TTY          TIME CMD
5 S root      8228     1  0  80   0 - 62991 poll_s  2016 ?        00:03:39 /sbin/rsyslogd -i /var/run/syslogd.pid -c 5
5 S root      8315     1  0  76  -4 - 23283 ep_pol  2016 ?        00:04:03 auditd
5 S root      8389     1  0  80   0 -  5277 hrtime  2016 ?        00:00:00 /usr/sbin/atd
5 S rpc       8507     1  0  80   0 -  4745 poll_s  2016 ?        00:00:04 rpcbind -w
4 S root      8562     1  0  80   0 - 47243 ep_pol  2016 ?        00:00:00 cupsd -C /etc/cups/cupsd.conf
1 S root      8820     1  0  80   0 - 45722 poll_s  2016 ?        00:00:00 /usr/sbin/abrtd
0 S root      8840     1  0  80   0 - 45185 inotif  2016 ?        00:00:00 abrt-dump-oops -d /var/spool/abrt -rwx /var/log/messages
5 S rpcuser  19518     1  0  80   0 -  5838 poll_s  2016 ?        00:00:00 rpc.statd
5 S root     20127  4992  0  78  -2 -  2807 poll_s  2016 ?        00:00:00 /sbin/udevd -d
5 S root     20128  4992  0  78  -2 -  2773 poll_s  2016 ?        00:00:00 /sbin/udevd -d


pgrep:

pgrep命令以名稱爲依據從運行進程隊列中查找進程,並顯示查找到的進程id。每一個進程ID以一個十進制數表示。常用於腳本獲取id號


-o:僅顯示找到的最小(起始)進程號; 

-n:僅顯示找到的最大(結束)進程號; 

-l:顯示進程名稱; -P:指定父進程號; 

-g:指定進程組; 

-t:指定開啓進程的終端; 

-u:指定進程的有效用戶ID。



pidof:根據進程名稱,查找相關id的pid號


top:動態查詢主機性能

[root@localhost ~]# top
top - 19:28:41 up 26 days,  7:04,  1 user,  load average: 0.07, 0.02, 0.00
Tasks:  94 total,   1 running,  93 sleeping,   0 stopped,   0 zombie
Cpu(s):  0.0%us,  0.0%sy,  0.0%ni,100.0%id,  0.0%wa,  0.0%hi,  0.0%si,  0.0%st
Mem:   1914492k total,  1890628k used,    23864k free,   182376k buffers
Swap:  1048568k total,      156k used,  1048412k free,  1460496k cached

  PID USER      PR  NI  VIRT  RES  SHR S %CPU %MEM    TIME+  COMMAND                                                                                                                                             
 2507 root      20   0 98.4m 3868 2928 S  0.3  0.2   0:00.02 sshd                                                                                                                                                 
 2509 root      20   0 15032 1220  940 R  0.3  0.1   0:00.01 top                                                                                                                                                  
    1 root      20   0 19348 1440 1200 S  0.0  0.1   0:34.45 init                                                                                                                                                 
    2 root      20   0     0    0    0 S  0.0  0.0   0:00.00 kthreadd                                                                                                                                             
    3 root      RT   0     0    0    0 S  0.0  0.0   0:00.50 migration/0                                                                                                                                          
    4 root      20   0     0    0    0 S  0.0  0.0   0:00.97 ksoftirqd/0

top - 19:28:41 :當前時間
up 26 days,  7:04:表示主機運行時長爲26天7小時4分
1 user:登錄用戶數
load average: 0.07, 0.02, 0.00:平均1分鐘、5分鐘、15分鐘的隊列長度平均值,越小表示cpu負載越低
Tasks:  94 total:進程總數
1 running: 1個處於運行的,根據cpu核數
93 sleeping:93個睡眠狀態的
0 stopped,   0 zombie:0個停止的進程,0個僵死進程
Cpu(s):cpu負載情況,按1鍵展示所有cpu負載
0.0%us:用戶空間的用戶進程佔用的百分比
0.0%sy:內核空間的用戶進程佔用的百分比
0.0%ni:調整nice值後影響的百分比
100.0%id:空閒的cpu百分比
0.0%wa:等待io佔用的百分比
0.0%hi:硬件中斷佔用的
0.0%si:軟中斷佔用的
0.0%st:被偷走的cpu
Mem:內存使用信息
total:總內存數
used:以使用內存
free:空閒內存
buffers:buffers數
Swap:交換空間使用情況。和Mem行一致
PID:進程pid
USER:運行用戶
PR:進程優先級,RT表示實時優先級
NI:nice值
VIRT:虛擬內存集
RES:常駐內存集
SHR:共享內存集
S:狀態
%CPU:佔用cpu百分比
%Mem:佔用內存百分比
TIME:進程在cpu運行時長
COMMAND:進程命令

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 進程號

[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	

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秒鐘顯示一次,但只顯示一次

[root@localhost ~]# vmstat 
procs -----------memory---------- ---swap-- -----io---- --system-- -----cpu-----
 r  b   swpd   free   buff  cache   si   so    bi    bo   in   cs us sy id wa st
 0  0    156  24756 182376 1461016    0    0     0     4    6    2  0  0 99  0  0	

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:查看系統登錄時間和系統負載

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章