天天看點

Linux程序及作業管理

一、程序檢視及其管理工具

………………………………………………………………………………………………………………………

ps指令:報告目前程序的快照資訊

  ps - report a snapshot of the current processes.

  選項:

    -A:顯示所有程序與-e相同的效果 

    -a:不與終端相關的所有程序

    -u:與使用者相關的程序

    -x:通常和a,u結合使用,顯示出來比較全面的資訊  

    -f:做一個更為完整的輸出   

 常用的組合:

    ps -ef 以完整的資訊顯示所有程序資訊 

    ps -efH 顯示程序層次結構

    ps -aux  顯示所有不與終端和與終端相關的程序完整資訊 

    ps -axo pid,command,psr,pri,ni 自定義顯示其程序号、程序指令、優先級、nice值

指令示範:

1

2

3

4

5

6

7

8

9

10

11

12

<code>[root@centos6 ~]</code><code># ps -ef |head -10</code>

<code>UID         PID   PPID  C STIME TTY          TIME CMD</code>

<code>root          1      0  0 Aug19 ?        00:00:05 </code><code>/sbin/init</code>

<code>root          2      0  0 Aug19 ?        00:00:00 [kthreadd]</code>

<code>root          3      2  0 Aug19 ?        00:00:00 [migration</code><code>/0</code><code>]</code>

<code>root          4      2  0 Aug19 ?        00:00:01 [ksoftirqd</code><code>/0</code><code>]</code>

<code>root          5      2  0 Aug19 ?        00:00:00 [stopper</code><code>/0</code><code>]</code>

<code>root          6      2  0 Aug19 ?        00:00:18 [watchdog</code><code>/0</code><code>]</code>

<code>root          7      2  0 Aug19 ?        00:06:04 [events</code><code>/0</code><code>]</code>

<code>root          8      2  0 Aug19 ?        00:00:00 [events</code><code>/0</code><code>]</code>

<code>root          9      2  0 Aug19 ?        00:00:00 [events_long</code><code>/0</code><code>]</code>

<code>[root@centos6 ~]</code><code>#</code>

    UID/PID/PPID:表示發起者、程序号、父程序号 

    C:代表CPU,機關為百分比  

    STIME:表示程序啟動時間

    TTY:登入者的終端位置 

    TIME:cpu的運作時間   

    CMD:處罰程序指令

<code>[root@centos6 ~]</code><code># ps aux</code>

<code>USER        PID %CPU %MEM    VSZ   RSS TTY      STAT START   TIME COMMAND</code>

<code>root          1  0.0  0.1  19364  1264 ?        Ss   Aug19   0:05 </code><code>/sbin/init</code>

<code>root          2  0.0  0.0      0     0 ?        S    Aug19   0:00 [kthreadd]</code>

<code>root          3  0.0  0.0      0     0 ?        S    Aug19   0:00 [migration</code><code>/0</code><code>]</code>

<code>root          4  0.0  0.0      0     0 ?        S    Aug19   0:01 [ksoftirqd</code><code>/0</code><code>]</code>

<code>root          5  0.0  0.0      0     0 ?        S    Aug19   0:00 [stopper</code><code>/0</code><code>]</code>

<code>root          6  0.0  0.0      0     0 ?        S    Aug19   0:18 [watchdog</code><code>/0</code><code>]</code>

<code>root          7  0.2  0.0      0     0 ?        S    Aug19   6:05 [events</code><code>/0</code><code>]</code>

<code>root          8  0.0  0.0      0     0 ?        S    Aug19   0:00 [events</code><code>/0</code><code>]</code>

    USER:程序的發起者   PID:程序号          %CPU:cpu的占用率

    %MEM:記憶體的占用率   VSZ:虛拟記憶體集       RSS:實體記憶體集 

    TTY:終端位置        STAT:程序狀态資訊    START:被觸發的時間 

    TIME:cpu的使用時間  COMMAND:觸發程序指令 

注:STAT的常見狀态:

    R:running,運作狀态                      

    S:interruptible sleeping,可終端休眠 

    D:uninterruptible sleeping,不可終端休眠  

    T:stop,停止狀态

    Z:zombie,僵持狀态  

top指令:

 top - display Linux tasks:動态顯示linux程序資訊

<a href="http://s2.51cto.com/wyfs02/M02/86/47/wKiom1e6xIXwdL5hAAA77fp6C_c569.png" target="_blank"></a>

top - 17:24:30 up 2 days,  9:45,  3 users,  load average: 0.00, 0.01, 0.05

top  目前系統時間 系統啟動到現在時間總長 使用者數  平均負載   

Tasks: 364 total,   2 running, 361 sleeping,   1 stopped,   0 zombie

顯示程序總量與個别程式處在什麼樣的狀态:運作 可中斷 不可中斷 僵持狀态、僵死狀态

%Cpu(s):  0.3 us,  0.7 sy,  0.0 ni, 99.0 id,  0.0 wa,  0.0 hi,  0.0 si,  0.0 st

顯示CPU的整體負載,具體如下:

    us:user space 用于使用空間

    sy:system space 核心占用cpu百分比

    ni:nice使用者程序空間所改變過優先級的程序占用cpu的百分比

    id:idle空閑cpu百分比

    wa:wait i/0 等待i/o花費時間

    hi:hardware interrupt 

    si:software interrupt

    st:stolen,被虛拟記憶體偷走的百分比

KiB Mem :  1001332 total,   139212 free,   207732 used,   654388 buff/cache

實體記憶體占用使用情況

KiB Swap:  2098172 total,  2097620 free,      552 used.   531424 avail Mem

交換分區的使用情況  

上面一行通常為空,隻要在輸入指令時才顯示,在這可輸入的指令有如下:

    P:以占據的cpu的百分比大小程序排序

    M:以占據的memory大小進行排序

    T:以cpu的運作時長進行排序

    l:顯示系統負載行

    t:是否顯示系統程序摘要資訊及其cpu的負載狀态

    1:平均或單獨顯示cpu的負載狀态

    m:是否顯示記憶體相關的狀态資訊

    q:退出指令

    s:修改延長重新整理時間

    k:終止指定程序

………………………………………………………………………………………………………………………   

top字段詳解:

<a href="http://s1.51cto.com/wyfs02/M01/86/47/wKioL1e62T2Cip78AAAVF76WtQ4158.png" target="_blank"></a>

  PID:程序号                          USER:程序發起者

  PR:程序的優先級,越小越優先         NI:nice值,與priortity有關,越小越早被運作

  VIRT:虛拟記憶體集 程序占虛拟記憶體空間   RES:實體記憶體集 程序占實際記憶體空間

  SHR:程序與其他程序共享的記憶體大小,   S:程序的狀态資訊

  %CPU:cpu的使用百分比                 %MEM:記憶體的使用百分比

  TIME+:cpu的使用時間的總時長          COMMAND:程序相關指令

htop指令:内部程序檢視器

    htop - interactive process viewer

<a href="http://s2.51cto.com/wyfs02/M00/86/48/wKiom1e63gbTPlTcAABrL6WppSc691.png" target="_blank"></a>

    u:顯示指定使用者的程序

    l:顯示光标所在程序所打開的檔案清單

    s:顯示光标所在程序執行的系統調用

    a:綁定程序到指定的cpu

    #:快速定位光标之pid為#号的程序上

htop支援的選項:

    -d:延長時長

    -u USERNAME:僅顯示指定使用者的程序

    -s COLUMN:根據指定的字段進行排序

二、Linux程序及作業管理

1、程序管理

 所謂的程序管理就是向程序發送一些控制信号,來完成對程序的管理控制,可通過kill指令來顯示目前系統可用的信号,以及向程序發送信号指定。

     kill -l:顯示目前系統可用的信号

<a href="http://s3.51cto.com/wyfs02/M00/86/48/wKioL1e64viAswotAAA_pdubdB8813.png" target="_blank"></a>

kill指令:

 用于向程序發送信号,以實作對程序的管理

 kill - terminate a process

每個信号的辨別方式有三種:

    1)信号的數字辨別 

    2)信号的完整名稱

    3)信号的簡寫名稱

向程序發信号:

    kill [-s signal|-p] [--] pid...

    kill -l [signal]

常見的信号有:

    1)SIGHUB  #無需關閉程序讓其重讀配置檔案 kill -1 pid

    2)SIGINT  #終止正在運作的指令 相當于ctrl+c kill -2 pid  

    9)SIGKILL #強暴的殺死正在運作的程序 kill -9 pid 

    15)SIGNTERM#安全終止運作中的程序 kill -15 pid 

    19)SIGSTOP #停止程序

killall指令:killall指令後面接程序名

 killall - kill processes by name

2、作業管理 

 在每個使用者登入系統之後每個工作程序都是目前bash的子程序,此時我們需要對那些進行管理,即将一部分作業放入背景運作,,同時在前台編輯一個配置檔案,在編輯完配置檔案後再将背景的作業任務調回前台運作。

如何将作業運作在背景:

    1)ctrl+z 

    2)command &amp; 

<a href="http://s1.51cto.com/wyfs02/M01/86/48/wKioL1e66N_ApQvwAAALy_TFUPg669.png" target="_blank"></a>

作業控制指令:fg bg kill 

作業控制指令:

    # fg [[%]JOBNUM]: 将指定的作業調回前台

    # bg [[%]JOBNUM]: 讓送往背景的作業在背景繼續運作

    # kill[%JOBNUM]: 終止指定的作

本文轉自chengong1013 51CTO部落格,原文連結:http://blog.51cto.com/purify/1841222,如需轉載請自行聯系原作者

繼續閱讀