linux 進程管理學習筆記

1.基礎:
PID:標識進程的ID

init:初始化進程(當前shell的根進程,PID爲1)

打開一個shell進程,然後運行其他程序或命令,那麼就會創建相應的子進程(shell進程通過fork()和clone()函數創建的),所以Linux進程之間是有聯繫的,所有進程都是衍生自init進程,形成一顆毅init爲根的進程樹,每個進程是該樹中的一個節點。

2.以全格式顯示系統中所有進程信息:
#ps -ef
UID        PID  PPID  C STIME TTY          TIME CMD
root         1     0  0 Jan31 ?        00:00:44 /sbin/init
root         2     0  0 Jan31 ?        00:00:00 [kthreadd]
root         3     2  0 Jan31 ?        00:00:00 [migration/0]
root         4     2  0 Jan31 ?        00:00:03 [ksoftirqd/0]
root         5     2  0 Jan31 ?        00:00:00 [migration/0]

UID:運行進程的用戶
PID:進程號
PPID:父進程ID
C:CPU調度情況
STIME:進程啓動時間
TTY:終端號
TIME:進程使用CPU時間
CMD:啓動進程的命令

3.查看當前終端中運行的進程
#ps -Tl
F S   UID   PID  SPID  PPID  C PRI  NI ADDR SZ WCHAN  TTY          TIME CMD
4 S     0 23219 23219 23169  0  80   0 - 27080 wait   pts/0    00:00:00 bash
4 R     0 24401 24401 23219  7  80   0 - 27030 -      pts/0    00:00:00 ps

#ps -ef kuid,-pid
對輸出結果先進行uid正向排序,再對pid進行降序排序

4.查看進程資源使用情況
#ps aux
USER       PID %CPU %MEM    VSZ   RSS TTY      STAT START   TIME COMMAND
root         1  0.0  0.0  19328   688 ?        Ss   Jan31   0:44 /sbin/init
root         2  0.0  0.0      0     0 ?        S    Jan31   0:00 [kthreadd]
root         3  0.0  0.0      0     0 ?        S    Jan31   0:00 [migration/0]
root         4  0.0  0.0      0     0 ?        S    Jan31   0:03 [ksoftirqd/0]
root         5  0.0  0.0      0     0 ?        S    Jan31   0:00 [migration/0]
root         6  0.0  0.0      0     0 ?        S    Jan31   0:00 [watchdog/0]


%CPU:進程CPU的使用率
%MEM:進程的內存使用率
VSZ:進程佔用虛擬內存大小
RSS:進程佔用物理內存大小
STAT:進程狀態
START:進程啓動時間
TIME:進程使用CPU時間
COMMAND:啓動進程的命令

5.後臺啓動
#COMMAND &
[5] 15323

只要在命令後加上“&”即可後臺運行。回車後,系統會返回後臺進程的PID,可以通過PID查看該後臺進程

#ps -ef | grep 15323
root    15323    15219    3    22:53  pts/2   00:00:00    COMMAND

使用jobs命令,可以查看系統當前所有正在運行的後臺進程
#jobs
[2]- Running         COMMAND &

在正常情況下,用戶推出系統後,其進程將全部銷燬,包括正在執行的後臺程序。爲了在退出系統後仍能繼續運行,可以使用nohup命令,該命令默認會把程序的輸出信息重定向到當前目錄的nohup.out文件中
#nohup COMMAND &
[1]  12498
nohup:appending output to 'nohup.out'

用戶退出系統後,該用戶的進程都已銷燬,而該後臺進程的父進程(PPID)會自動改爲1

6.更改進程優先級
a)進程優先級範圍:-20~19
b)-20最高,19最低
c)-1~-20只有root可以設置
d)進程運行的默認級別爲0

# ps -l
F S   UID   PID  PPID  C PRI  NI ADDR SZ WCHAN  TTY          TIME CMD
4 S     0 27061 27053  0  80   0 - 27080 wait   pts/1    00:00:00 bash
4 R     0 27102 27061 10  80   0 - 27030 -      pts/1    00:00:00 ps

NI即優先級字段
#vim test &             \\默認優先級爲0
#nice vim test &        \\優先級爲10
#nice -13 vim test &    \\優先級爲13
#nice --13 vim test &   \\優先級爲-13
#nice --40 vim test &   \\優先級爲-20

“-”爲nice的格式,--13表示-13;最高等級不超過-20,即使輸入-40,優先級也會自動改爲-20.


7.進程掛起和恢復
Ctrl+Z:將前臺運行的進程轉到後臺並掛起
例如:
#cp -R /tmp /root
//輸入Ctrl+Z
[6]+   Stopped       cp -i -R /tmp /root

#jobs         //查看後臺進程
[6]+  Stopped              cp -i -R /tmp /root

#bg 6         //使用bg命令將掛起的進程轉到後臺繼續運行
[6]+  cp -i -R /tmp /root
#jobs
[6]   Running     cp -i -R /tmp /root

#fg 6         //把後臺進程轉到前臺
cp -i -R /tmp /root



發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章