<rt id="bn8ez"></rt>
<label id="bn8ez"></label>

  • <span id="bn8ez"></span>

    <label id="bn8ez"><meter id="bn8ez"></meter></label>

    十三:現在到底有誰在干什么?進程

    首先,什么是進程,我們要把它和程序明確區分開來。
    先說一下程序吧,程序是一個靜態概念,它是“實際存在”于操作系統中的一段指令,或者代碼,總之,它是一段可以被成功解釋的腳本,或者被編譯的代碼,在操作系統中我們可以直觀的看到。
    而進程是一個動態概念,它是指程序運行的過程。

    *進程和程序沒有直接的關系,一個程序可以啟動多個進程,一個進程可以被多個程序調用。

    一個常用的查看進程的命令是ps,他能生成一個當前的進程快照
    示例:ps

    直接使用”ps”我們可以看到有兩行數據,一個bash,也就是當前的shell,另一個就是ps本身。我們看到有一列叫PID,它意為進程的ID;TTY,是teletype的縮寫,表示終端的類型。TIME表示占用CPU的時間。
    不過直接使用ps信息量來得太少,而且他只顯示當前終端相關的進程。
    有一組常用的命令組合是aux,這能給我們提供足夠的信息


    aux選項顯示了所有用戶的進程。值得一提的是,ps能夠接受多個不同版本Unix的參數,比如剛才說的aux這組參數,就是BSD的參數,而列表也是BSD風格的。標準一組常用參數是-ef,和aux類似。
    以aux這組參數展示的列表為例,說明一下每一列的含義
    • USER:表示進程的所有者
    • PID:進程ID號
    • %CPU:CPU的使用率
    • %MEM:內存的使用率
    • VSZ:虛擬內存大小
    • RSS:占用的內容的大小
    • START:進程運行的起始時間,超過24個小時則按天顯示
    • TTY:已經提過,是終端的類型,但是圖上我們看到很多終端顯示“?”,這表示他們沒有控制終端
    這其中多說一下STATE列,這一列表示進程的狀態,進程的狀態有很多種
    • R:運行狀態,running
    • S:休眠狀態,sleeping
    • D:不可中斷的休眠狀態
    • T:進程終止
    • Z:zombie!這是一個死進程,或者說僵尸進程
    • <:高優先級別的進程,“不友好的進程”
    • N:低優先級別的進程,“友好的進程”
    上面有幾個名詞需要額外說一下
    *僵尸進程:一個進程可以產生另外一個進程,產生的新進程則為子進程,如果子進程已經終止,并且父進程沒有從進程列表里清空他,那么子進程就變僵尸了…
    *進程優先級別:雖然我們在使用電腦的時候,感覺他同時在做許多事情,但其實他是在飛快的輪換著做很多事,飛快的程度讓我們感覺不出他是在輪換著執行,更像是同時執行,既然是輪換執行,那么就有先后之分,進程優先級別越高,那么該進程就會占用更多的CPU時間,級別低的自然就占用的少了。

    和ps相似的一個命令叫pstree,輸出一個樹型結構的進程列表,會展示進程間父/子關系。

    程序啟動時,調整進程的優先級別:nice
    nice只能在程序啟動時調整他的優先級別
    用法:nice -n 程序,n代表優先級別,取值范圍是-20~19,取值范圍只能在這里,如果你輸入其他的值,比如-30,那么系統會自動調整為-20。
    示例:nice –20 我的程序,修改“我的程序”的優先級別為-20,。注意,參數是“–20”,有兩個橫杠,第二個橫杠代表負,第一個橫杠代表參數。

    修改一個正在運行的程序的優先級別:renice
    修改的程序可以正在運行
    用法:renice -n 程序,-n是一個參數
    示例:renice -5 我的程序,“我的程序”正在運行,修改他的優先級別為-5。這里的-n是一個參數,-5表示負五,并不是五。

    動態的去查看進程:top
    剛才說過,ps命令是生成一個當前進程的快照,意為只是那一個時刻進程的狀態,top命令同樣會產生一組進程列表,但是他會定時刷新這組列表,盡量反映最新的進程狀態,并且會報告一些進程概要。你可以想象一下Windows下的Ctrl+Alt+Delete

    top命令執行后,上方會顯示一個進程的概要

    概要中比較明顯的數值就不一一說明了,但是要看一下那個叫load average的值,他直譯過來可以叫做平均負載,他有三個值,這反映了系統最后60s,最后5分鐘和最后15分鐘內等待運行進程的個數,他可以反映系統忙碌的程度,如果這個值小于1.0,那么說明系統不忙碌。
    CPU相關的百分比,man給出了一個說明,注意其中是否友好的進程,其實是代表了優先級高與低的進程。



    查看被暫停的或者后臺任務的狀態:jobs
    要說明這個命令,我們需要先知道讓一個命令后臺執行的方法。除了系統的進程以服務的形式在運行之外,我們可以使用&符號來指明一個命令后臺運行,通常他可能是一個耗時的操作,比如備份,大范圍搜索等。
    示例:find / -name [a*]>~/res.txt &
    我們把“&”符號連接在一個命令的后面,使得他變為后臺運行,同時,我們使用jobs命令來查看他們,他可能會是這樣

    我們可以使用fg和bg命令來控制進程在前后臺的切換,比如我們將一個搜索放在后臺執行,在他沒有完成之前,通過jobs查看,它會顯示running狀態,此時,我們通過“fg jobs編號”命令可以把后臺正在運行的進程切換到前臺來執行。

    進程的控制:kill
    是的,就是這么直白!干掉他!當然,這也是kill命令最常用的作用,終止一個進程。
    示例:kill 進程id,當我們通過ps或者top發現我們需要操作的進程之后,我們可以使用kill命令來終止相應pid的進程,注意,我這里說的是終止,并不是像命令所說的那樣殺死,因為kill能做的遠不止終止一個進程。我們通過kill -l可以查看我們可以發送哪些信號給當前進程。

    我們看到,這里有很多“信號”,在我們使用“kill PID”的時候,實際上市使用的“kill -15 PID”,-15是kill對一個進程發出的默認信號,它代表終止,但是有時候,這種手段并不管用,那么我們需要使用kill -9來終止一個進程,從圖中我們可以看出,-9代表kill,它意味著真正的殺死一個進程。
    因為進程的不同,從而導致了進程接收到終止信號后產生的行為也不同,有些能夠乖乖的終止,但有些不能。聽話的進程在接收到-15(終止信號)后會做一些善后處理之后終止,而那些不聽好的或許不予理睬,那么此時我們需要-9(殺死信號)來終止進程,但是這個信號發出之后就相當于一棍打死,沒有給進程余地來善后,所以這也是終止進程的殺手锏。

    根據名字終止進程:killall
    和kill類似,都能夠終止進程,但是killall能夠根據進程的名稱來終止一個或者一組進程
    示例:killall httpd,終止所有httpd進程,當然,你需要root權限才能終止其他用戶的進程
    一些其他的操作
    *終止一個正在運行的程序:Ctrl+c,注意,c是cancel,不是copy
    *掛起(暫停)一個正在運行的程序:Ctrl+z

    posted on 2015-07-16 11:54 都較瘦 閱讀(107) 評論(0)  編輯  收藏 所屬分類: Linux

    <2025年5月>
    27282930123
    45678910
    11121314151617
    18192021222324
    25262728293031
    1234567

    導航

    統計

    公告

    博客定位:囿于目前的水平,博客定位在記錄自己的學習心得和隨手的練習

    常用鏈接

    留言簿

    隨筆分類

    隨筆檔案

    文章分類

    文章檔案

    搜索

    最新評論

    閱讀排行榜

    評論排行榜

    主站蜘蛛池模板: 欧洲乱码伦视频免费| 97视频免费在线| 亚洲人妻av伦理| 人碰人碰人成人免费视频| 免费在线一级毛片| 猫咪免费人成网站在线观看入口| 成人无遮挡毛片免费看| 亚洲国产AV无码一区二区三区| 女人18毛片a级毛片免费| 亚洲精品9999久久久久无码| 超pen个人视频国产免费观看| 老司机亚洲精品影院在线观看| 亚洲 另类 无码 在线| 一个人免费观看视频在线中文| 亚洲自偷自偷图片| 99久久人妻精品免费一区| 亚洲国产综合自在线另类| 午夜毛片不卡免费观看视频| 鲁死你资源站亚洲av| 亚洲综合久久夜AV | 久久99精品视免费看| 麻豆狠色伊人亚洲综合网站 | 国产天堂亚洲国产碰碰| 亚洲欧洲国产成人综合在线观看 | 青苹果乐园免费高清在线| 亚洲AV无码一区二区三区鸳鸯影院 | 亚洲午夜久久久精品影院| 国产精品免费观看久久| 国产产在线精品亚洲AAVV| 亚洲av无码乱码国产精品fc2| **aaaaa毛片免费同男同女| 亚洲GV天堂GV无码男同| 国产亚洲美女精品久久久| 日本人的色道免费网站| 国产亚洲精品欧洲在线观看| 亚洲国产成人一区二区精品区| 99久久这里只精品国产免费| 日本在线观看免费高清| 亚洲福利视频网站| 亚洲国产成人爱av在线播放| 99ee6热久久免费精品6|