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