linux程序管理
一.pstree檢視程序
pstree檢視程序
常用指令選項
-a:顯示完整的指令行
-p:列出對應程序的PID編号
[root@www ~]# pstree -p zhangsan
bash(39290)───su(51704)───bash(51726)───pstree(73981)
[root@www ~]# pstree -a zhangsan
bash
└─su - root
└─bash
└─pstree -a zhangsan
[root@www ~]# pstree -ap zhangsan
bash,39290
└─su,51704 - root
└─bash,51726
└─pstree,74145 -ap zhangsan
[root@www ~]#
二、ps檢視程序
ps — Processes Snapshot
格式:ps [選項]...
常用指令選項
aux:顯示目前終端所有程序(a)、目前使用者在所有終端下的程序(x)、以使用者格式輸出(u)
-elf:顯示系統内所有程序(-e)、以長格式輸出(-l)資訊、包括最完整的程序資訊(-f)
ps aux 操作
列出正在運作的所有程序,顯示程序資訊非常詳細
使用者 程序ID %CPU %記憶體 虛拟記憶體 固定記憶體 終端 狀态 起始時間 CPU時間 程式指令
ps -elf 操作
列出正在運作的所有程序,顯示程序父程序資訊
PPID為父程序的PID
[root@www ~]# ps aux
USER PID %CPU %MEM VSZ RSS TTY STAT START TIME COMMAND
root 1 0.0 0.6 127984 6580 ? Ss 00:37 0:01 /usr/lib/systemd/systemd --switched-root --system --deseriali
root 2 0.0 0.0 0 0 ? S 00:37 0:00 [kthreadd]
root 3 0.0 0.0 0 0 ? S 00:37 0:00 [ksoftirqd/0]
root 5 0.0 0.0 0 0 ? S< 00:37 0:00 [kworker/0:0H]
root 6 0.0 0.0 0 0 ? S 00:37 0:02 [kworker/u256:0]
root 7 0.0 0.0 0 0 ? S 00:37 0:00 [migration/0]
root 8 0.0 0.0 0 0 ? S 00:37 0:00 [rcu_bh]
root 9 0.0 0.0 0 0 ? R 00:37 0:01 [rcu_sched]
[root@www ~]# ps -elf
F S UID PID PPID C PRI NI ADDR SZ WCHAN STIME TTY TIME CMD
4 S root 1 0 0 80 0 - 31996 ep_pol 00:37 ? 00:00:01 /usr/lib/systemd/systemd --switched-root --system
1 S root 2 0 0 80 0 - 0 kthrea 00:37 ? 00:00:00 [kthreadd]
1 S root 3 2 0 80 0 - 0 smpboo 00:37 ? 00:00:00 [ksoftirqd/0]
1 S root 5 2 0 60 -20 - 0 worker 00:37 ? 00:00:00 [kworker/0:0H]
1 S root 6 2 0 80 0 - 0 worker 00:37 ? 00:00:02 [kworker/u256:0]
1 S root 7 2 0 -40 - - 0 smpboo 00:37 ? 00:00:00 [migration/0]
1 S root 8 2 0 80 0 - 0 rcu_gp 00:37 ? 00:00:00 [rcu_bh]
三、top 互動式工具
格式:top [-d 重新整理秒數] [-U 使用者名]
按大寫P進行CPU排序
按大寫M進行記憶體排序
pgrep — Process Grep
用途:pgrep [選項]... 查詢條件
常用指令選項
-l:輸出程序名,而不僅僅是 PID
-U:檢索指定使用者的程序
-x:精确比對完整的程序名
注意:U必須放到最後
四、控制程序(程序前背景的排程)
程序的前背景排程
&符号:正在運作的狀态放入背景
Ctrl + z 組合鍵: 挂起目前程序(暫停并轉入背景)
• jobs 指令 檢視背景任務清單
• fg 指令 将背景任務恢複到前台運作
• bg 指令 激活背景被挂起的任務
[root@localhost ~]# yum -y install xorg-x11-apps
[root@localhost ~]# xeyes
^Z #按Ctrl+z 暫停放入背景,适用于程式已經在運作,我們可以按ctrl+z來停止
[1]+ 已停止 xeyes
[root@localhost ~]# jobs #檢視背景程序資訊
[root@localhost ~]# bg 1 #讓背景編号為1 的程序繼續運作,就是剛才ctrl+z暫停了,此時我們bg可以再啟動
[root@localhost ~]# jobs #檢視背景程序資訊
[root@localhost ~]# fg 1 #讓背景編号為1 的程序恢複到前台
xeyes
^C #按Ctrl+c 結束
[root@localhost ~]#
五、殺死程序
殺死程序的不同方法
Ctrl+c 組合鍵,中斷目前指令程式
kill [-9] PID... 、kill [-9] %背景任務編号
killall [-9] 程序名...
pkill [-9] 查找條件
[root@localhost ~]# xeyes & #&符号為放入背景運作
[root@localhost ~]# xeyes &
[root@localhost ~]# xeyes &
[root@localhost ~]# jobs -l
[1]+ 8999 運作中 xeyes &
[root@localhost ~]# kill -9 8999
[1]+ 已殺死 xeyes
[root@localhost ~]# jobs -l
[root@localhost ~]# killall xeyes
殺死一個使用者開啟的所有程序(踢出一個使用者)
[root@localhost ~]# killall -9 -u zhangsan