標(biāo)志 | 內(nèi)核定義的狀態(tài)名稱(chēng)和描述 |
---|---|
R | TASK_RUNNING:進(jìn)程正在CPU上執(zhí)行,或者正在等待運(yùn)行。處于運(yùn)行中(或可運(yùn)行)狀態(tài)時(shí),進(jìn)程可能正在執(zhí)行用戶例程或內(nèi)核例程(系統(tǒng)調(diào)用),或者已排隊(duì)并就緒 |
S | TASK_INTERRUPTIBLE:進(jìn)程處于睡眠狀態(tài)且正在等待某一條件:硬件請(qǐng)求、系統(tǒng)資源訪問(wèn)或信號(hào)。當(dāng)事件或信號(hào)滿足該條件時(shí),該進(jìn)程將返回到運(yùn)行中 |
D | TASK_UNINTERRUPTIBLE:此進(jìn)程也在睡眠,但與S狀態(tài)不同,不會(huì)響應(yīng)傳遞的信號(hào)。僅在特定的條件下使用,其中進(jìn)程中斷可能會(huì)導(dǎo)致意外的設(shè)備狀態(tài) |
K | TASK_KILLABLE:進(jìn)程處于睡眠狀態(tài),與不可中斷的D狀態(tài)相同,但有所修改,允許等待中的任務(wù)通過(guò)響應(yīng)信號(hào)而被中斷(徹底退出)。實(shí)用程序通常將可中斷的進(jìn)程顯示為D狀態(tài) |
T | TASK_STOPPED:進(jìn)程已被停止(暫停),通常是通過(guò)用戶或其他進(jìn)程發(fā)出的信號(hào)。進(jìn)程可以通過(guò)另一信號(hào)返回到運(yùn)行中狀態(tài),繼續(xù)執(zhí)行(恢復(fù)) |
T | TASK_TRACED:正在被調(diào)試的進(jìn)程也會(huì)臨時(shí)停止,并且共享同一個(gè)T狀態(tài)標(biāo)志 |
Z | EXIT_ZOMBIE:子進(jìn)程在退出時(shí)向父進(jìn)程發(fā)出信號(hào)。除進(jìn)程身份(PID)之外的所有資源都已釋放 |
X | EXIT_DEAD:當(dāng)父進(jìn)程清理(獲取)剩余的子進(jìn)程結(jié)構(gòu)時(shí),進(jìn)程現(xiàn)在已徹底釋放。此狀態(tài)從不會(huì)在進(jìn)程列出實(shí)用程序中看到 |
< | 高優(yōu)先級(jí)進(jìn)程 |
N | 低優(yōu)先級(jí)進(jìn)程 |
+ | 前臺(tái)進(jìn)程組中的進(jìn)程 |
l | 多線程進(jìn)程 |
s | 會(huì)話進(jìn)程首進(jìn)程 |
ps
命令用于列出當(dāng)前的進(jìn)程。可以顯示詳細(xì)的進(jìn)程信息
[root@localhost ~]# ps -e PID TTY TIME CMD 1 ? 00:00:02 systemd 2 ? 00:00:00 kthreadd
[root@localhost ~]# ps aux USER PID %CPU %MEM VSZ RSS TTY STAT START TIME COMMAND root 1 0.0 0.6 179032 13504 ? Ss Nov03 0:02 /usr/lib/syst root 2 0.0 0.0 0 0 ? S Nov03 0:00 [kthreadd] root 3 0.0 0.0 0 0 ? I< Nov03 0:00 [rcu_gp] root 4 0.0 0.0 0 0 ? I< Nov03 0:00 [rcu_par_gp] root 6 0.0 0.0 0 0 ? I< Nov03 0:00 [kworker/0:0H root 8 0.0 0.0 0 0 ? I< Nov03 0:00 [mm_percpu_wq root 9 0.0 0.0 0 0 ? S Nov03 0:00 [ksoftirqd/0] root 10 0.0 0.0 0 0 ? R Nov03 0:00 [rcu_sched] root 11 0.0 0.0 0 0 ? S Nov03 0:00 [migration/0] root 12 0.0 0.0 0 0 ? S Nov03 0:00 [watchdog/0] root 13 0.0 0.0 0 0 ? S Nov03 0:00 [cpuhp/0] root 15 0.0 0.0 0 0 ? S Nov03 0:00 [kdevtmpfs] root 16 0.0 0.0 0 0 ? I< Nov03 0:00 [netns] root 17 0.0 0.0 0 0 ? S Nov03 0:00 [kauditd] root 18 0.0 0.0 0 0 ? S Nov03 0:00 [khungtaskd] root 19 0.0 0.0 0 0 ? S Nov03 0:00 [oom_reaper] root 20 0.0 0.0 0 0 ? I< Nov03 0:00 [writeback] root 21 0.0 0.0 0 0 ? S Nov03 0:00 [kcompactd0] root 22 0.0 0.0 0 0 ? SN Nov03 0:00 [ksmd] root 23 0.0 0.0 0 0 ? SN Nov03 0:00 [khugepaged] root 24 0.0 0.0 0 0 ? I< Nov03 0:00 [crypto] root 25 0.0 0.0 0 0 ? I< Nov03 0:00 [kintegrityd] root 26 0.0 0.0 0 0 ? I< Nov03 0:00 [kblockd] root 27 0.0 0.0 0 0 ? I< Nov03 0:00 [tpm_dev_wq] root 28 0.0 0.0 0 0 ? I< Nov03 0:00 [md] root 29 0.0 0.0 0 0 ? I< Nov03 0:00 [edac-poller] root 30 0.0 0.0 0 0 ? S Nov03 0:00 [watchdogd] root 47 0.0 0.0 0 0 ? S Nov03 0:00 [kswapd0] root 140 0.0 0.0 0 0 ? I< Nov03 0:00 [kthrotld] root 141 0.0 0.0 0 0 ? S Nov03 0:00 [irq/24-pcieh root 142 0.0 0.0 0 0 ? S Nov03 0:00 [irq/25-pcieh root 143 0.0 0.0 0 0 ? S Nov03 0:00 [irq/26-pcieh root 144 0.0 0.0 0 0 ? S Nov03 0:00 [irq/27-pcieh root 145 0.0 0.0 0 0 ? S Nov03
[root@localhost ~]# ps -ef UID PID PPID C STIME TTY TIME CMD root 1 0 0 Nov03 ? 00:00:02 /usr/lib/systemd/systemd --s root 2 0 0 Nov03 ? 00:00:00 [kthreadd] root 3 2 0 Nov03 ? 00:00:00 [rcu_gp] root 4 2 0 Nov03 ? 00:00:00 [rcu_par_gp] root 6 2 0 Nov03 ? 00:00:00 [kworker/0:0H-k
虛擬內(nèi)存狀態(tài)查看命令
vmstat 1000 //表示每1000秒刷新一次
vmstat 1000 5 //表示每1000秒刷新一次,刷新5次后退出
[root@localhost ~]# vmstat 1000 procs: r(running) //表示等待運(yùn)行的隊(duì)列長(zhǎng)度,也即等待運(yùn)行的進(jìn)程的個(gè)數(shù) b(block) //表示阻塞隊(duì)列長(zhǎng)度,也即處于不可中斷睡眠態(tài)的進(jìn)程個(gè)數(shù) memory: swpd //交換內(nèi)存的使用總量 free //空閑物理內(nèi)存總量 buffer //用于buffer的內(nèi)存總量 cache //用于cache的內(nèi)存總量 swap: si(swap in) //表示從物理內(nèi)存有多少頁(yè)面換進(jìn)swap,也即數(shù)據(jù)進(jìn)入swap的數(shù)據(jù)速率(kb/s) so(swap out) //表示從swap有多少頁(yè)面換進(jìn)物理內(nèi)存,也即數(shù)據(jù)離開(kāi)swap的數(shù)據(jù)速率(kb/s) io: bi(block in) //表示磁盤(pán)塊有多少個(gè)被調(diào)入內(nèi)存中,也即從塊設(shè)備讀入數(shù)據(jù)到系統(tǒng)的速率(kb/s) bo(block out) //表示有多少個(gè)磁盤(pán)塊從內(nèi)存中被同步到硬盤(pán)上去了,也即保存數(shù)據(jù)至塊設(shè)備的速率(kb/s) system: in( interrupts) //表示中斷的個(gè)數(shù),也即中斷速率(kb/s) cs(context switch) //表示上下文切換的次數(shù),也即進(jìn)程切換速率(kb/s) CPU: us //表示用戶空間 sy //表示內(nèi)核空間 id //表示空閑百分比 wa //表示等待IO完成所占據(jù)的時(shí)間百分比 st //表示steal,被虛擬化技術(shù)偷走的時(shí)間(比如運(yùn)行虛擬機(jī))
//在命令后跟上&符號(hào)可以生成一個(gè)后臺(tái)作業(yè) [root@localhost ~]# sleep 1000 & [1] 1400 //jobs命令用于顯示當(dāng)前所有的后臺(tái)作業(yè) [root@localhost ~]# jobs [1]+ Running sleep 1000 & //fg命令用于將后臺(tái)作業(yè)調(diào)至前臺(tái)運(yùn)行 [root@localhost ~]# fg //當(dāng)只有一個(gè)后臺(tái)作業(yè)時(shí),直接使用fg命令,不跟任何參數(shù)即可將后臺(tái)作業(yè)調(diào)至前臺(tái)運(yùn)行,但是當(dāng)有多個(gè)作業(yè)時(shí)則必須跟上%+作業(yè)號(hào),也就是上面命令執(zhí)行結(jié)果中以[]括起來(lái)的數(shù)字。 [root@localhost ~]# jobs [1]- Running sleep 1000 & [2]+ Running sleep 500 & [root@localhost ~]# fg %1 //使用ctrl+z可將前臺(tái)進(jìn)程發(fā)送到后臺(tái),此時(shí)作業(yè)將處于停止?fàn)顟B(tài) [root@localhost ~]# fg %1 sleep 1000 ^Z [1]+ Stopped sleep 1000 //使用bg命令+作業(yè)號(hào)可使后臺(tái)已停止的作業(yè)重新運(yùn)行 [root@localhost ~]# bg %1 [1]+ sleep 1000 & [root@localhost ~]# jobs [1]- Running sleep 1000 & [2]+ Running sleep 500 & //kill加上作業(yè)號(hào)可以手動(dòng)殺死指定作業(yè) [root@localhost ~]# jobs [1]- Running sleep 1000 & [2]+ Running sleep 500 & [root@localhost ~]# kill %1 [1]- Terminated sleep 1000 [root@localhost ~]# jobs [2]+ Running sleep 500 & //jobs命令的結(jié)果中 + //命令將默認(rèn)操作的作業(yè) - //命令將第二個(gè)默認(rèn)操作的作業(yè)
以上就是Linux運(yùn)維基礎(chǔ)進(jìn)程管理及環(huán)境組成分析的詳細(xì)內(nèi)容,更多關(guān)于Linux進(jìn)程管理及環(huán)境組成的資料請(qǐng)關(guān)注腳本之家其它相關(guān)文章!
標(biāo)簽:朝陽(yáng) 銅川 松原 慶陽(yáng) 蕪湖 泰州 周口 那曲
巨人網(wǎng)絡(luò)通訊聲明:本文標(biāo)題《Linux運(yùn)維基礎(chǔ)進(jìn)程管理及環(huán)境組成分析》,本文關(guān)鍵詞 Linux,運(yùn)維,基礎(chǔ),進(jìn)程,管理,;如發(fā)現(xiàn)本文內(nèi)容存在版權(quán)問(wèn)題,煩請(qǐng)?zhí)峁┫嚓P(guān)信息告之我們,我們將及時(shí)溝通與處理。本站內(nèi)容系統(tǒng)采集于網(wǎng)絡(luò),涉及言論、版權(quán)與本站無(wú)關(guān)。