<output id="qn6qe"></output>

    1. <output id="qn6qe"><tt id="qn6qe"></tt></output>
    2. <strike id="qn6qe"></strike>

      亚洲 日本 欧洲 欧美 视频,日韩中文字幕有码av,一本一道av中文字幕无码,国产线播放免费人成视频播放,人妻少妇偷人无码视频,日夜啪啪一区二区三区,国产尤物精品自在拍视频首页,久热这里只有精品12

      程序管理篇

      如何產(chǎn)生一個程序呢?就是執(zhí)行一個程式或指令,系統(tǒng)只認(rèn)識二進(jìn)制文件,當(dāng)我們啟動一個二進(jìn)制文件的時候會生成程序,而二進(jìn)制文件里的東西就是程式,程式被某個條件觸發(fā)生成程序。

       

       

       程式一般是放置在實(shí)體磁碟中,然后透過使用者的執(zhí)行來觸發(fā)。觸發(fā)后會載入到記憶體中成為一個個體,那就是程序。

      程序有給予執(zhí)行者的權(quán)限/屬性等參數(shù),并包括程式所需要的指令碼與資料或檔案資料等, 最后再給予一個PID 。系統(tǒng)就是透過這個PID 來判斷該process 是否具有權(quán)限進(jìn)行工作的

       

       

       也就是說,當(dāng)我們登入并執(zhí)行bash時,系統(tǒng)已經(jīng)給我們一個PID了,這個PID就是依據(jù)登入者的UID/GID (/etc/passwd)來的

      我們知道/bin/bash是一個程式(program),當(dāng)dmtsai登入后,他取得一個PID號碼為2234的程序,這個程序的User/Group都是dmtsai ,而當(dāng)這個程式進(jìn)行其他作業(yè)時,例如上面提到的touch這個指令時,那么由這個程序衍生出來的其他程序在一般狀態(tài)下,也會沿用這個程序的相關(guān)權(quán)限

      讓我們將程式與程序作個總結(jié):

        • 程式(program):通常為binary program ,放置在儲存媒體中(如硬碟、光碟、軟碟、磁帶等), 為實(shí)體檔案的型態(tài)存在;

        • 程序(process):程式被觸發(fā)后,執(zhí)行者的權(quán)限與屬性、程式的程式碼與所需資料等都會被載入記憶體中, 作業(yè)系統(tǒng)并給予這個記憶體內(nèi)的單元一個識別碼(PID),可以說,程序就是一個正在運(yùn)作中的程式。

      關(guān)于父進(jìn)程與子進(jìn)程

       

      程式彼此之間是有相關(guān)性的,連續(xù)執(zhí)行兩個bash 后,第二個bash 的父程序就是前一個bash。因?yàn)槊總€程序都有一個PID ,那某個程序的父程序該如何判斷?就透過Parent PID (PPID) 來判斷即可。

       

       

       

       

       fork and exec:程序呼叫的流程

       

       系統(tǒng)先以fork 的方式復(fù)制一個與父程序相同的暫存程序,這個程序與父程序唯一的差別就是PID 不同!但是這個暫存程序還會多一個PPID 的參數(shù),PPID 如前所述,就是父程序的程序識別碼,然后暫存程序開始以exec 的方式載入實(shí)際要執(zhí)行的程式,以上述圖示來講,新的程式名稱為qqq ,最終子程序的程式碼就會變成qqq 了

       

      系統(tǒng)或網(wǎng)路服務(wù):常駐在記憶體的程序

      就是會一直運(yùn)行的程序。

      主要大致分成系統(tǒng)本身所需要的服務(wù),例如剛剛提到的crond及atd ,還有rsyslogd等等的。還有一些則是負(fù)責(zé)網(wǎng)路連線的服務(wù),例如Apache, named, postfix, vsftpd...等等的

      工作管理

      進(jìn)行工作管理的行為中,其實(shí)每個工作都是目前bash的子程序,亦即彼此之間是有相關(guān)性的。我們無法以job control的方式由tty1的環(huán)境去管理tty2的bash !

      可以出現(xiàn)提示字元讓你操作的環(huán)境就稱為前景(foreground),至于其他工作就可以讓你放入背景(background)去暫停或運(yùn)作。要注意的是,放入背景的工作想要運(yùn)作時,他必須不能夠與使用者互動。舉例來說, vim絕對不可能在背景里面執(zhí)行(running)的!因?yàn)槟銢]有輸入資料他就不會跑啊!而且放入背景的工作是不可以使用[ctrl]+c來終止

      總之,要進(jìn)行bash 的job control 必須要注意到的限制是:

      • 這些工作所觸發(fā)的程序必須來自于你shell 的子程序(只管理自己的bash);
      • 前景:你可以控制與下達(dá)指令的這個環(huán)境稱為前景的工作(foreground);
      • 背景:可以自行運(yùn)作的工作,你無法使用[ctrl]+c 終止他,可使用bg/fg 呼叫該工作;
      • 背景中『執(zhí)行』的程序不能等待terminal/shell 的輸入(input)

      job control 管理

      直接將指令放到后臺(背景)運(yùn)行

       

       我在輸入一個指令后,在該指令的最后面加上一個『 & 』代表將該指令丟到背景中, 此時bash 會給予這個指令一個『工作號碼(job number)』 ,就是那個[1] 啦!至于后面那個14432 則是該指令所觸發(fā)的『 PID 』了,這里注意工作號碼和pid不是一個東西,該任務(wù)如果執(zhí)行完畢或出問題,提示會跑到前臺,所以要將提示信息導(dǎo)入一個文件中存起來,防止出提示信息影響前臺工作,另一方面,在后臺運(yùn)行的程序無法用ctrl+c結(jié)束。

       

       如此一來,輸出的資訊都給他傳送到/tmp/log.txt 當(dāng)中

       

      將『目前』的工作丟到背景中『暫停』:[ctrl]-z

       

       在vim的一般模式下,按下[ctrl]及z這兩個按鍵,螢?zāi)簧蠒霈F(xiàn)[1] ,表示這是第一個工作,而那個+代表最近一個被丟進(jìn)背景的工作,且目前在背景下預(yù)設(shè)會被取用的那個工作(與fg這個指令有關(guān))!而那個Stopped則代表目前這個工作的狀態(tài)。在預(yù)設(shè)的情況下,使用[ctrl]-z丟到背景當(dāng)中的工作都是『暫停』的狀態(tài)

       

      觀察目前的背景工作狀態(tài): jobs

       

       那個+代表預(yù)設(shè)的取用工作,目前我有兩個工作在背景當(dāng)中,兩個工作都是暫停的,而如果我僅輸入fg時,那么那個[2]會被拿到前景當(dāng)中來處理

      將背景工作拿到前景來處理:fg

       

       我們會發(fā)現(xiàn)+出現(xiàn)在第一個工作后!怎么會這樣啊?這是因?yàn)槟銊倓偫胒g %1將第一號工作捉到前景后又放回背景,此時最后一個被放入背景的將變成vi那個指令動作,所以當(dāng)然[1]后面就會出現(xiàn)+了

       

      讓工作在背景下的狀態(tài)變成運(yùn)作中: bg

       

       這里那jobs;bg %3 ; jobs是三個命令,用;隔開而已

       

       

       管理背景當(dāng)中的工作: kill

       

       

       

       kill 后面接的數(shù)字預(yù)設(shè)會是PID ,如果想要管理bash 的工作控制,就得要加上%數(shù)字了

      至少記得kill -15是正常結(jié)束進(jìn)程,kill -9是強(qiáng)制結(jié)束進(jìn)程

      離線管理問題

       

       如果你想要讓在背景的工作在你登出后還能夠繼續(xù)的執(zhí)行,那么使用nohup 搭配& 

       程序觀察

       

       

       

       

       

       

      • F:代表這個程序旗標(biāo)(process flags),說明這個程序的總結(jié)權(quán)限,常見號碼有:
      • S:代表這個程序的狀態(tài)(STAT),主要的狀態(tài)有:
        • R (Running):該程式正在運(yùn)作中;
        • S (Sleep):該程式目前正在睡眠狀態(tài)(idle),但可以被喚醒(signal)。
        • D :不可被喚醒的睡眠狀態(tài),通常這支程式可能在等待I/O 的情況(ex>列印)
        • T :停止?fàn)顟B(tài)(stop),可能是在工作控制(背景暫停)或除錯(traced) 狀態(tài);
        • Z (Zombie):僵尸狀態(tài),程序已經(jīng)終止但卻無法被移除至記憶體外。
      • UID/PID/PPID:代表『此程序被該UID 所擁有/程序的PID 號碼/此程序的父程序PID 號碼』

      • C:代表CPU 使用率,單位為百分比;

      • PRI/NI:Priority/Nice的縮寫,代表此程序被CPU所執(zhí)行的優(yōu)先順序,數(shù)值越小代表該程序越快被CPU執(zhí)行。詳細(xì)的PRI與NI將在下一小節(jié)說明。

      • ADDR/SZ/WCHAN:都與記憶體有關(guān),ADDR 是kernel function,指出該程序在記憶體的哪個部分,如果是個running 的程序,一般就會顯示『 - 』 / SZ 代表此程序用掉多少記憶體/ WCHAN 表示目前程序是否運(yùn)作中,同樣的, 若為- 表示正在運(yùn)作中。

      • TTY:登入者的終端機(jī)位置,若為遠(yuǎn)端登入則使用動態(tài)終端介面(pts/n);

      • TIME:使用掉的CPU 時間,注意,是此程序?qū)嶋H花費(fèi)CPU 運(yùn)作的時間,而不是系統(tǒng)時間;

      • CMD:就是command 的縮寫,造成此程序的觸發(fā)程式之指令為何。

      所以你看到的ps -l 輸出訊息中,他說明的是:『bash 的程式屬于UID 為0 的使用者,狀態(tài)為睡眠(sleep), 之所以為睡眠因?yàn)樗|發(fā)了ps (狀態(tài)為run)之故。此程序的PID 為14836,優(yōu)先執(zhí)行順序?yàn)?0 , 下達(dá)bash 所取得的終端介面為pts/0 ,運(yùn)作狀態(tài)為等待(wait) 。

       

       

       

      • USER:該process 屬于那個使用者帳號的?
      • PID :該process 的程序識別碼。
      • %CPU:該process 使用掉的CPU 資源百分比;
      • %MEM:該process 所占用的實(shí)體記憶體百分比;
      • VSZ :該process 使用掉的虛擬記憶體量(Kbytes)
      • RSS :該process 占用的固定的記憶體量(Kbytes)
      • TTY :該process 是在那個終端機(jī)上面運(yùn)作,若與終端機(jī)無關(guān)則顯示?,另外, tty1-tty6 是本機(jī)上面的登入者程序,若為pts/0 等等的,則表示為由網(wǎng)路連接進(jìn)主機(jī)的程序。
      • STAT:該程序目前的狀態(tài),狀態(tài)顯示與ps -l 的S 旗標(biāo)相同(R/S/T/Z)
      • START:該process 被觸發(fā)啟動的時間;
      • TIME :該process 實(shí)際使用CPU 運(yùn)作的時間。
      • COMMAND:該程序的實(shí)際指令為何?

      一般來說,ps aux 會依照PID 的順序來排序顯示,我們還是以14836 那個PID 那行來說明!該行的意義為『 root 執(zhí)行的bash PID 為14836,占用了0.1% 的記憶體容量百分比,狀態(tài)為休眠(S),該程序啟動的時間為8 月4 號,因此啟動太久了, 所以沒有列出實(shí)際的時間點(diǎn)。且取得的終端機(jī)環(huán)境為pts/0 。』與ps aux 看到的其實(shí)是同一個程序

       

       

       

       

       

       top  動態(tài)觀察程序的變化

       

       

       

       

       

       

      在預(yù)設(shè)的情況下,每次更新程序資源的時間為5 秒,不過,可以使用-d 來進(jìn)行修改。top 主要分為兩個畫面,上面的畫面為整個系統(tǒng)的資源使用狀態(tài),基本上總共有六行,顯示的內(nèi)容依序是:

      • 第一行(top...):這一行顯示的資訊分別為:
        • 目前的時間,亦即是00:53:59 那個項(xiàng)目;
        • 開機(jī)到目前為止所經(jīng)過的時間,亦即是up 6:07, 那個項(xiàng)目;
        • 已經(jīng)登入系統(tǒng)的使用者人數(shù),亦即是3 users, 項(xiàng)目;
        • 系統(tǒng)在1, 5, 15分鐘的平均工作負(fù)載。我們在第十五章談到的batch 工作方式為負(fù)載小于0.8就是這個負(fù)載啰!代表的是1, 5, 15分鐘,系統(tǒng)平均要負(fù)責(zé)運(yùn)作幾個程序(工作)的意思。越小代表系統(tǒng)越閑置,若高于1得要注意你的系統(tǒng)程序是否太過繁復(fù)了!
      • 第二行(Tasks...):顯示的是目前程序的總量與個別程序在什么狀態(tài)(running, sleeping, stopped, zombie)。比較需要注意的是最后的zombie 那個數(shù)值,如果不是0 !好好看看到底是那個process 變成僵尸了吧?

      • 第三行(%Cpus...):顯示的是CPU 的整體負(fù)載,每個項(xiàng)目可使用? 查閱。需要特別注意的是wa 項(xiàng)目,那個項(xiàng)目代表的是I/O wait, 通常你的系統(tǒng)會變慢都是I/O 產(chǎn)生的問題比較大!因此這里得要注意這個項(xiàng)目耗用CPU 的資源喔!另外,如果是多核心的設(shè)備,可以按下數(shù)字鍵『1』來切換成不同CPU 的負(fù)載率。

      • 第四行與第五行:表示目前的實(shí)體記憶體與虛擬記憶體(Mem/Swap) 的使用情況。再次重申,要注意的是swap 的使用量要盡量的少!如果swap 被用的很大量,表示系統(tǒng)的實(shí)體記憶體實(shí)在不足!

      • 第六行:這個是當(dāng)在top 程式當(dāng)中輸入指令時,顯示狀態(tài)的地方。

      至于top 下半部分的畫面,則是每個process 使用的資源情況。比較需要注意的是:

      • PID :每個process 的ID 啦!
      • USER:該process 所屬的使用者;
      • PR :Priority 的簡寫,程序的優(yōu)先執(zhí)行順序,越小越早被執(zhí)行;
      • NI :Nice 的簡寫,與Priority 有關(guān),也是越小越早被執(zhí)行;
      • %CPU:CPU 的使用率;
      • %MEM:記憶體的使用率;
      • TIME+:CPU 使用時間的累加;

      top 預(yù)設(shè)使用CPU 使用率(%CPU) 作為排序的重點(diǎn),如果你想要使用記憶體使用率排序,則可以按下『M』, 若要回復(fù)則按下『P』即可。如果想要離開top 則按下『 q 』吧!如果你想要將top 的結(jié)果輸出成為檔案時, 可以這樣做:

       

       

       觀察指定的單一程序:

       

       

       修改NI(越小越優(yōu)先):

       

       

       在你完成上面的動作后,在狀態(tài)列會出現(xiàn)如下的資訊:

       

       

       接下來你就會看到如下的顯示畫面!

       

       

       想要找出最損耗CPU 資源的那個程序時,大多使用的就是top 這支程式,然后強(qiáng)制以CPU 使用資源來排序(在top 當(dāng)中按下P 即可)

      關(guān)于pstree

       

       

       可以加管道符號縮小范圍

       

       

       

       

      killall -signal 指令名稱

      kill -1 重啟

        -9 強(qiáng)殺

        -15正常中斷

       

       

       

       

       

       grep -v表示去除包含grep的進(jìn)程,awk '{$2}'表示輸出第二個元素就是pid,如果改成1則輸出root

       

      killall 更方便的操作

      利用『下達(dá)指令的名稱』來給予訊號

       

       

       刪除某個程序,我們可以使用PID 或者是啟動該程序的指令名稱, 而如果要刪除某個服務(wù)呢?呵呵!最簡單的方法就是利用killall , 因?yàn)樗梢詫⑾到y(tǒng)當(dāng)中所有以某個指令名稱啟動的程序全部刪除。

       

       

      程序優(yōu)先度調(diào)整

      我們知道CPU 一秒鐘可以運(yùn)作多達(dá)數(shù)G 的微指令次數(shù),透過核心的CPU 排程可以讓各程序被CPU 所切換運(yùn)作, 因此每個程序在一秒鐘內(nèi)或多或少都會被CPU 執(zhí)行部分的指令碼。如果程序都是集中在一個隊(duì)列運(yùn)作, 而不具有優(yōu)先順序之分,也就是像我們?nèi)ビ螛穲鐾鏌衢T游戲需要排隊(duì)一樣,每個人都是照順序來!你玩過一遍后還想再玩(沒有執(zhí)行完畢),請到后面繼續(xù)排隊(duì)等待。情況有點(diǎn)像底下這樣:

       

      假設(shè)pro1, pro2 是緊急的程序, pro3, pro4 是一般的程序,在這樣的環(huán)境中

      我們可以將程序的優(yōu)先順序與CPU 排程進(jìn)行如下圖的解釋:

       

       

       

       如上圖所示,具高優(yōu)先權(quán)的pro1, pro2可以被取用兩次,而較不重要的pro3, pro4則運(yùn)作次數(shù)較少。如此一來pro1, pro2就可以較快被完成啦!要注意,上圖僅是示意圖,并非較優(yōu)先者一定會被運(yùn)作兩次啦!為了要達(dá)到上述的功能,我們Linux給予程序一個所謂的『優(yōu)先執(zhí)行序(priority, PRI)』,這個PRI值越低代表越優(yōu)先的意思。不過這個PRI值是由核心動態(tài)調(diào)整的,使用者無法直接調(diào)整PRI值的。先來瞧瞧PRI曾在哪里出現(xiàn)?

       

       

       由于PRI 是核心動態(tài)調(diào)整的,我們使用者也無權(quán)去干涉PRI !那如果你想要調(diào)整程序的優(yōu)先執(zhí)行序時,就得要透過Nice 值了!Nice 值就是上表的NI 啦!一般來說, PRI 與NI 的相關(guān)性如下:

      PRI(new) = PRI(old) + nice

      不過你要特別留意到,如果原本的PRI是50 ,并不是我們給予一個nice = 5 ,就會讓PRI變成55喔!因?yàn)镻RI是系統(tǒng)『動態(tài)』決定的,所以,雖然nice值是可以影響PRI ,不過,最終的PRI仍是要經(jīng)過系統(tǒng)分析后才會決定的。另外, nice值是有正負(fù)的喔,而既然PRI越小越早被執(zhí)行,所以,當(dāng)nice值為負(fù)值時,那么該程序就會降低PRI值,亦即會變的較優(yōu)先被處理。此外,你必須要留意到:

      • nice 值可調(diào)整的范圍為-20 ~ 19 ;
      • root 可隨意調(diào)整自己或他人程序的Nice 值,且范圍為-20 ~ 19 ;
      • 一般使用者僅可調(diào)整自己程序的Nice 值,且范圍僅為0 ~ 19 (避免一般用戶搶占系統(tǒng)資源);
      • 一般使用者僅可將nice 值越調(diào)越高,例如本來nice 為5 ,則未來僅能調(diào)整到大于5;

      這也就是說,要調(diào)整某個程序的優(yōu)先執(zhí)行序,就是『調(diào)整該程序的nice 值』啦!那么如何給予某個程序nice 值呢?有兩種方式,分別是:

      • 一開始執(zhí)行程式就立即給予一個特定的nice 值:用nice 指令;
      • 調(diào)整某個已經(jīng)存在的PID 的nice 值:用renice 指令。

       

      新執(zhí)行的指令即給予新的nice 值

       

       

       通常什么時候要將nice 值調(diào)大呢?舉例來說,系統(tǒng)的背景工作中, 某些比較不重要的程序之進(jìn)行:例如備份工作!由于備份工作相當(dāng)?shù)暮南到y(tǒng)資源, 這個時候就可以將備份的指令之nice 值調(diào)大一些,可以使系統(tǒng)的資源分配的更為公平

      另外,『 nice -n N command 』那個N 指的是『在原本的nice 值底下,再加上的一個值,變成新的nice 值』之意。所以在上面的范例中,原本的nice 為10,使用了nice -n -5 之后,就會變成(10+(-5)),最終結(jié)果就是5!并不是直接指定nice 值

       

      已存在程序的nice 重新調(diào)整

       

       

       雖然修改的是bash那個程序,但是該程序所觸發(fā)的ps指令當(dāng)中的nice也會繼承而為-5!了解了吧!整個nice值是可以在父程序-->子程序之間傳遞的!另外,除了renice之外,其實(shí)那個top同樣的也是可以調(diào)整nice值的!

      系統(tǒng)資源的觀察

      free 觀察內(nèi)存(記憶體)

       

       

       我的系統(tǒng)當(dāng)中有2848MB 左右的實(shí)體記憶體,我的swap 有1GB 左右, 那我使用free -m 以MBytes 來顯示時,就會出現(xiàn)上面的資訊。Mem 那一行顯示的是實(shí)體記憶體的量, Swap 則是記憶體置換空間的量。total 是總量, used 是已被使用的量, free 則是剩余可用的量。后面的shared/buffers/cached 則是在已被使用的量當(dāng)中,用來作為緩沖及快取的量,這些shared/buffers/cached 的用量中,在系統(tǒng)比較忙碌時, 可以被釋出而繼續(xù)利用!因此后面就有一個available (可用的) 數(shù)值!

      我們可以發(fā)現(xiàn)這部測試機(jī)根本沒有什么特別的服務(wù),但是竟然有706MB 左右的cache !因?yàn)轼B哥在測試過程中還是有讀/寫/執(zhí)行很多的檔案嘛!這些檔案就會被系統(tǒng)暫時快取下來,等待下次運(yùn)作時可以更快速的取出之意!也就是說,系統(tǒng)是『很有效率的將所有的記憶體用光光』,目的是為了讓系統(tǒng)的存取效能加速,一般來說, swap 最好不要被使用,尤其swap 最好不要被使用超過20% 以上, 如果您發(fā)現(xiàn)swap 的用量超過20% ,那么,最好還是買實(shí)體記憶體來插吧!因?yàn)椋?Swap 的效能跟??實(shí)體記憶體實(shí)在差很多,而系統(tǒng)會使用到swap , 絕對是因?yàn)閷?shí)體記憶體不足了才會這樣做的

       

      uname:查閱系統(tǒng)與核心相關(guān)資訊

       

       

       uname 可以列出目前系統(tǒng)的核心版本、 主要硬體平臺以及CPU 類型等等的資訊。以上面范例一的狀態(tài)來說,我的Linux 主機(jī)使用的核心名稱為Linux,而主機(jī)名稱為study.centos.vbird,核心的版本為3.10.0-229.el7.x86_64 ,該核心版本建立的日期為2015-3-6,適用的硬體平臺為x86_64 以上等級的硬體平臺。

       

      uptime:觀察系統(tǒng)啟動時間與工作負(fù)載

       

       

       顯示出目前系統(tǒng)已經(jīng)開機(jī)多久的時間,以及1, 5, 15分鐘的平均負(fù)載

       

      netstat :追蹤網(wǎng)路或插槽檔

       

       

       

      在上面的結(jié)果當(dāng)中,顯示了兩個部分,分別是網(wǎng)路的連線以及l(fā)inux 上面的socket 程序相關(guān)性部分。我們先來看看網(wǎng)際網(wǎng)路連線情況的部分:

      • Proto :網(wǎng)路的封包協(xié)定,主要分為TCP與UDP封包
      • Recv-Q:非由使用者程式連結(jié)到此socket 的復(fù)制的總bytes 數(shù);
      • Send-Q:非由遠(yuǎn)端主機(jī)傳送過來的acknowledged 總bytes 數(shù);
      • Local Address :本地端的IP:port 情況
      • Foreign Address:遠(yuǎn)端主機(jī)的IP:port 情況
      • State :連線狀態(tài),主要有建立(ESTABLISED)及監(jiān)聽(LISTEN);

       除了網(wǎng)路上的連線之外,其實(shí)Linux系統(tǒng)上面的程序是可以接收不同程序所發(fā)送來的資訊,那就是Linux上頭的插槽檔(socket file)

      上表中socket file的輸出欄位有:

      • Proto :一般就是unix 啦;
      • RefCnt:連接到此socket 的程序數(shù)量;
      • Flags :連線的旗標(biāo);
      • Type :socket 存取的類型。主要有確認(rèn)連線的STREAM 與不需確認(rèn)的DGRAM 兩種;
      • State :若為CONNECTED 表示多個程序之間已經(jīng)連線建立。
      • Path :連接到此socket 的相關(guān)程式的路徑!或者是相關(guān)資料??輸出的路徑。

       

       偵測系統(tǒng)資源變化

       

       

      利用vmstat 甚至可以進(jìn)行追蹤?quán)福?/span>你可以使用類似『 vmstat 5 』代表每五秒鐘更新一次,且無窮的更新!直到你按下 [ctrl]-c 為止。如果你想要即時的知道系統(tǒng)資源的運(yùn)作狀態(tài),這個指令就不能不知道!那么上面的表格各項(xiàng)欄位的意義為何?基本說明如下:

        • 程序欄位(procs)的項(xiàng)目分別為:
          r :等待運(yùn)作中的程序數(shù)量;b:不可被喚醒的程序數(shù)量。這兩個項(xiàng)目越多,代表系統(tǒng)越忙碌(因?yàn)橄到y(tǒng)太忙,所以很多程序就無法被執(zhí)行或一直在等待而無法被喚醒之故)。

        • 記憶體欄位(memory)項(xiàng)目分別為:
          swpd:虛擬記憶體被使用的容量; free:未被使用的記憶體容量; buff:用于緩沖記憶體; cache:用于快取記憶體。這部份則與free是相同的。

        • 記憶體置換空間(swap)的項(xiàng)目分別為:
          si:由磁碟中將程序取出的量; so:由于記憶體不足而將沒用到的程序?qū)懭氲酱诺膕wap的容量。如果si/so的數(shù)值太大,表示記憶體內(nèi)的資料常常得在磁碟與主記憶體之間傳來傳去,系統(tǒng)效能會很差!

        • 磁碟讀寫(io)的項(xiàng)目分別為:
          bi:由磁碟讀入的區(qū)塊數(shù)量; bo:寫入到磁碟去的區(qū)塊數(shù)量。如果這部份的值越高,代表系統(tǒng)的I/O非常忙碌!

        • 系統(tǒng)(system)的項(xiàng)目分別為:
          in:每秒被中斷的程序次數(shù); cs:每秒鐘進(jìn)行的事件切換次數(shù);這兩個數(shù)值越大,代表系統(tǒng)與周邊設(shè)備的溝通非常頻繁!這些周邊設(shè)備當(dāng)然包括磁碟、網(wǎng)路卡、時間鐘等。

        • CPU的項(xiàng)目分別為:
          us:非核心層的CPU使用狀態(tài); sy:核心層所使用的CPU狀態(tài); id:閑置的狀態(tài); wa:等待I/O所耗費(fèi)的CPU狀態(tài); st:被虛擬機(jī)器( virtual machine)所盜用的CPU使用狀態(tài)(2.6.11以后才支持)

      具有SUID/SGID 權(quán)限的指令執(zhí)行狀態(tài)

      • SUID 權(quán)限僅對二進(jìn)位程式(binary program)有效;
      • 執(zhí)行者對于該程式需要具有x 的可執(zhí)行權(quán)限;
      • 本權(quán)限僅在執(zhí)行該程式的過程中有效(run-time);
      • 執(zhí)行者將具有該程式擁有者(owner) 的權(quán)限。

      整個SUID的權(quán)限會生效是由于『具有該權(quán)限的程式被觸發(fā)』,而我們知道一個程式被觸發(fā)會變成程序,所以啰,執(zhí)行者可以具有程式擁有者的權(quán)限就是在該程式變成程序的那個時候

      你或許那時候會覺得很奇怪,為啥執(zhí)行了passwd后你就具有root的權(quán)限呢?不都是一般使用者執(zhí)行的嗎?這是因?yàn)槟阍谟|發(fā)passwd后,會取得一個新的程序與PID,該P(yáng)ID產(chǎn)生時透過SUID來給予該P(yáng)ID特殊的權(quán)限設(shè)定啦!我們使用dmtsai登入系統(tǒng)且執(zhí)行passwd后,透過工作控制來理解一下!

       

       

       如何查詢整個系統(tǒng)的SUID/SGID的檔案呢

      find / -perm /6000

       

      fuser:藉由檔案(或檔案系統(tǒng))找出正在使用該檔案的程序

      想要知道我的程序到底在這次啟動過程中開啟了多少檔案,可以利用fuser 來觀察啦!舉例來說,你如果卸載時發(fā)現(xiàn)系統(tǒng)通知:『 device is busy 』,那表示這個檔案系統(tǒng)正在忙碌中, 表示有某支程序有利用到該檔案系統(tǒng)

       

       

       

      • c :此程序在當(dāng)前的目錄下(非次目錄);
      • e :可被觸發(fā)為執(zhí)行狀態(tài);
      • f :是一個被開啟的檔案;
      • r :代表頂層目錄(root directory);
      • F :該檔案被開啟了,不過在等待回應(yīng)中;
      • m :可能為分享的動態(tài)函式庫;

       

       

       僅針對單一檔案

       

       

      如何查出某個程序開啟或者使用的檔案與裝置呢?呼呼!那就是使用lsof 

       

       

       

      找出某支正在執(zhí)行的程式的PID

       

      posted @ 2020-10-28 17:12  豬啊美  閱讀(411)  評論(0)    收藏  舉報
      主站蜘蛛池模板: 黄色三级亚洲男人的天堂| 亚洲av综合色一区二区| 久久精品夜色国产亚洲av| 内射老妇bbwx0c0ck| 欧美亚洲熟妇一区二区三区| 成人午夜福利免费专区无码| 武冈市| 久久夜色精品国产亚av| 中文字幕乱码一区二区免费| 亚洲第一精品一二三区| 高潮精品熟妇一区二区三区| 四虎永久地址WWW成人久久| 两当县| 色成人亚洲| 亚洲国产色一区二区三区| 夜夜添无码一区二区三区| 亚洲av色香蕉一区二区| 国产亚洲精品成人无码精品网站| 亚洲国产日韩一区三区| 自拍视频一区二区三区四区| 欧美日韩人成综合在线播放| 风流老熟女一区二区三区 | 国产亚洲欧美日韩在线一区二区三| 亚洲色欲色欱WWW在线| 国产伦一区二区三区久久| 亚洲精品国产字幕久久麻豆| 亚洲综合欧美在线…| 欧美白妞大战非洲大炮| 亚洲欭美日韩颜射在线二| 亚洲国产成人综合自在线| 亚洲国产天堂久久综合226114| 通河县| 亚洲欧洲无码av电影在线观看| 漂亮人妻中文字幕丝袜| 国产睡熟迷奷系列网站| 在线精品自拍亚洲第一区| 制服丝袜长腿无码专区第一页| 国产超碰无码最新上传| 亚洲国产精品综合一区二区| 欧美色综合天天久久综合精品 | 99久久婷婷国产综合精品青草漫画|