进程和网络
who
查看當(dāng)前在線上的用戶情況。所有的選項(xiàng)都是可選的,不使用任何選項(xiàng)時(shí),who命令將
顯示以下三項(xiàng)內(nèi)容:
login name:登錄用戶名;
terminal line:使用終端設(shè)備;
login time:登錄到系統(tǒng)的時(shí)間。
itcast@ubuntu:~/demo$ who -uH
名稱 線路 時(shí)間 空閑 進(jìn)程號(hào) 備注
itcast tty2 2014-08-14 13:31 . 6798
itcast tty7 2014-08-14 01:31 舊 2423 ? ? tty文字終端
itcast pts/1 2014-08-14 01:31 12:00 2843 (:0) pts圖像化終端
itcast pts/3 2014-08-14 10:39 . 2843 (:0)
?
ctrl + alt + F1 - F6 切換到其他文字終端,按alt + F7 返回
?
ps
ps [選項(xiàng)]
ps aux | grep ...
ps命令用于監(jiān)控后臺(tái)進(jìn)程的工作情況,因?yàn)楹笈_(tái)進(jìn)程是不和屏幕鍵盤這些標(biāo)準(zhǔn)輸入/輸
出設(shè)備進(jìn)行通信的,所以如果需要檢測(cè)其情況,便可以使用ps命令了。選項(xiàng)部分如下:
-e 顯示所有進(jìn)程。
-f 全格式。
-h 不顯示標(biāo)題。
-l 長格式。
-w 寬輸出。
-r 只顯示正在運(yùn)行的進(jìn)程。
-a:即all,查看當(dāng)前系統(tǒng)所有用戶的所有進(jìn)程
-u:查看進(jìn)程所有者及其他一些詳細(xì)信息
-x:顯示沒有控制終端的進(jìn)程
這個(gè)命令參數(shù)有很多,但一般的用戶只需掌握一些最常用的命令參數(shù)就可以了。 最常
用的三個(gè)參數(shù)是u、a、x, 我們首先以root身份登錄系統(tǒng),查看當(dāng)前進(jìn)程狀況
itcast@ubuntu:~$ ps aux
USER PID %CPU %MEM VSZ RSS TTY STAT START TIME COMMAND
root 1 0.0 0.0 3672 2008 ? Ss 08:46 0:01 /sbin/init
itcast@ubuntu:~$ ps ajx
PPID PID PGID SID TTY TPGID STAT UID TIME COMMAND
4592 6948 6948 4592 pts/3 6948 R+ 1000 0:00 ps ajx
itcast@ubuntu:~$ ps -Lf 2423
UID PID PPID LWP C NLWP STIME TTY STAT TIME CMD
| 1000 | 2423 | 2282 | 2423 | 0 | 4 08:46 ? | Ssl | 0:00 gnome-session --session=ubuntu |
| 1000 | 2423 | 2282 | 2465 | 0 | 4 08:46 ? | Ssl | 0:00 gnome-session --session=ubuntu |
| 1000 | 2423 | 2282 | 2466 | 0 | 4 08:46 ? | Ssl | 0:00 gnome-session --session=ubuntu |
| 1000 | 2423 | 2282 | 2468 | 0 | 4 08:46 ? | Ssl | 0:00 gnome-session --session=ubuntu |
Head標(biāo)頭:
USER 用戶名
UID 用戶ID(User ID)
PID 進(jìn)程ID(Process ID)
PPID 父進(jìn)程的進(jìn)程ID(Parent Process id)
SID 會(huì)話ID(Session id)
%CPU 進(jìn)程的cpu占用率
%MEM 進(jìn)程的內(nèi)存占用率
VSZ 進(jìn)程所使用的虛存的大小(Virtual Size)
RSS 進(jìn)程使用的駐留集大小或者是實(shí)際內(nèi)存的大小,Kbytes字節(jié)。
TTY 與進(jìn)程關(guān)聯(lián)的終端(tty)
STAT 進(jìn)程的狀態(tài):進(jìn)程狀態(tài)使用字符表示的(STAT的狀態(tài)碼)
R 運(yùn)行 Runnable (on run queue) 正在運(yùn)行或在運(yùn)行隊(duì)列中等待。
S 睡眠 Sleeping 休眠中, 受阻, 在等待某個(gè)條件的形成或接受到信號(hào)。
I 空閑 Idle
| Z 僵死 | Zombie(a defunct process) | 進(jìn)程已終止, 但進(jìn)程描述符存在, 直到父進(jìn)程調(diào)用wait4()系統(tǒng)調(diào) |
| 用后釋放。 D 不可中斷 | Uninterruptible sleep (ususally IO) | 收到信號(hào)不喚醒和不可運(yùn)行, 進(jìn)程必須等待直到有中 |
| 斷發(fā)生。 T 停止 | Terminate | 進(jìn)程收到SIGSTOP, SIGSTP, SIGTIN, SIGTOU信號(hào)后停止運(yùn)行運(yùn)行。 |
| P 等待交換頁 W 無駐留頁 | has no resident pages | 沒有足夠的記憶體分頁可分配。 |
| X 死掉的進(jìn)程 < 高優(yōu)先級(jí)進(jìn)程 | 高優(yōu)先序的進(jìn)程 | |
| N 低優(yōu)先 | 級(jí)進(jìn)程 | 低優(yōu)先序的進(jìn)程 |
| L 內(nèi)存鎖頁 | Lock | 有記憶體分頁分配并縮在記憶體內(nèi) |
s 進(jìn)程的領(lǐng)導(dǎo)者(在它之下有子進(jìn)程);
l 多進(jìn)程的(使用 CLONE_THREAD, 類似 NPTL pthreads)
+ 位于后臺(tái)的進(jìn)程組
START 進(jìn)程啟動(dòng)時(shí)間和日期
TIME 進(jìn)程使用的總cpu時(shí)間
COMMAND 正在執(zhí)行的命令行命令
NI 優(yōu)先級(jí)(Nice)
PRI 進(jìn)程優(yōu)先級(jí)編號(hào)(Priority)
WCHAN 進(jìn)程正在睡眠的內(nèi)核函數(shù)名稱;該函數(shù)的名稱是從/root/system.map文件中獲得的。
FLAGS 與進(jìn)程相關(guān)的數(shù)字標(biāo)識(shí)
?
jobs
用來顯示當(dāng)前shell 下正在運(yùn)行哪些作業(yè)(即后臺(tái)作業(yè))。
$ cat
(按下Ctrl-z掛起當(dāng)前進(jìn)程)
[1]+ Stopped cat
$ cat
(按下Ctrl-z掛起當(dāng)前進(jìn)程)
[1]+ Stopped cat
$ jobs
[1]- Stopped cat
[2]+ Stopped cat
第一列方括號(hào)中的數(shù)字表示作業(yè)序號(hào),它是由當(dāng)前運(yùn)行的shell 分配的,而不是由操作
系統(tǒng)統(tǒng)一分配的。在當(dāng)前shell 環(huán)境下,第一后臺(tái)作業(yè)的作業(yè)號(hào)為1,第二作業(yè)的作業(yè)號(hào)為
2,等等。第二列中的“+”號(hào)表示相應(yīng)作業(yè)的優(yōu)先級(jí)比“-”號(hào)對(duì)應(yīng)作業(yè)的優(yōu)先級(jí)高。第三
列表明作業(yè)狀態(tài),是否為運(yùn)行、中斷、等待輸入或停止等。最后列出的是創(chuàng)建當(dāng)前這個(gè)作業(yè)
所對(duì)應(yīng)的命令行
?
fg
fg [job…]
把指定的后臺(tái)作業(yè)或掛起作業(yè)移到前臺(tái)運(yùn)行。 參數(shù)job是一個(gè)或多個(gè)進(jìn)程的PID,或者
是命令名稱,或者是作業(yè)號(hào)(作業(yè)號(hào)前面要帶一個(gè)%號(hào))。
36 第8章 進(jìn)程管理
通常在shell中輸入命令啟動(dòng)進(jìn)程后,如果該進(jìn)程需要與用戶交互,那么此后用戶的鍵
盤輸入都被該進(jìn)程讀取,直到該進(jìn)程退出后才出現(xiàn)shell提示符$,這種進(jìn)程為前臺(tái)進(jìn)程。
如果在命令行的末尾加上&字符,則shell為這個(gè)命令創(chuàng)建一個(gè)后臺(tái)進(jìn)程,它雖然也可以
輸出到屏幕,但是不能讀取鍵盤輸入,不管執(zhí)行命令的進(jìn)程有沒有退出都立刻回到shell提
示符接受下一條命令的輸入。如果該進(jìn)程也需要讀取鍵盤輸入,則被掛起等待直到用戶用fg
命令把它變成前臺(tái)進(jìn)程。如果一個(gè)命令需要較長的處理時(shí)間并且不需要與用戶交互,就適合
把它放在后臺(tái)執(zhí)行。
8.5 bg
bg [job…]
把被掛起的進(jìn)程提到后臺(tái)執(zhí)行。 其中,job是一個(gè)或多個(gè)進(jìn)程的PID、命令名稱或者作
業(yè)號(hào),在參數(shù)前要帶%號(hào)。
$ cat
(按下Ctrl-z掛起當(dāng)前進(jìn)程)
[1]+ Stopped cat
$ bg %1
[1]+ cat &
$(再回車一次)
[1]+ Stopped cat
$ fg %1
cat
(按Ctrl-d輸入文件結(jié)束符)
$
8.6 kill
向指定進(jìn)程發(fā)送信號(hào)
kill [ -signal | -s signal ] pid ...
8.7節(jié) env 37
查看信號(hào)編號(hào)
kill -l [ signal ]
給一個(gè)進(jìn)程發(fā)信號(hào),或終止一個(gè)進(jìn)程的運(yùn)行。
$ cat
(按Ctrl-z掛起當(dāng)前進(jìn)程)
?
?
| [1]+ | Stopped | cat |
| $ ps | PID TTY | TIME CMD |
| 5819 pts/1 | 00:00:00 bash | |
| 5893 pts/1 | 00:00:00 cat | |
| 5894 pts/1 | 00:00:00 ps |
$ kill -SIGKILL 5893
$(再次按回車鍵)
[1]+ Killed cat
$
kill命令如果不帶參數(shù)而直接跟pid,就是發(fā)給該進(jìn)程SIGTERM信號(hào),大部分進(jìn)程收到該
信號(hào)就會(huì)終止。但是被掛起的進(jìn)程不能處理信號(hào),所以必須發(fā)SIGKILL信號(hào),由系統(tǒng)強(qiáng)制終
止進(jìn)程。
8.7 env
查看當(dāng)前進(jìn)程環(huán)境變量
$env
* vim ~/.bashrc
配置當(dāng)前用戶環(huán)境變量
* vim /etc/profile
配置系統(tǒng)環(huán)境變量,配置時(shí)需要有root權(quán)限
export PATH=$PATH:新路徑
8.8 top
?
轉(zhuǎn)載于:https://www.cnblogs.com/xiangtingshen/p/10392893.html
總結(jié)
- 上一篇: Django-5.1 模型层 单表操作
- 下一篇: 关于this的指向