pgrep 與 pkill

pgrep 與 pkill 是 procps 包內的其中兩個工具來,

它的作用如用 grep +  ps + kill 的混合

但用起上來比它們方便 ^ ^

 

===========================================

pgrep 是給出條件後返回 process ID

如 $ pgrep sshd

# 即會返回所有 sshd 的 process ID

它的功能與 sysvinit-utils 的 pidof 有點接近

==========================================
lwy@lamp:~$ pidof apache2
28501 28500 28340 28335 12201 12004 12003 12002 12001 12000 11978

==========================================

但 pgrep 比它強, 因為它可以接受再多參數

$ pgrep -u lwy sshd
# 返回以 lwy 用戶啟動的 sshd 的 process ID

 

以下再來一些示範
===============================
lamp:~# pgrep  -u lwy
30248
30249
# 所有以 lwy 用戶啟動的 PID

lamp:~# pgrep -c -u lwy
2
# 總共有幾多個

lamp:~# pgrep -l -u lwy
30248 sshd
30249 sh
# 連名一齊顯示

lamp:~# renice -4 `pgrep par2`
# 為某軟件加速

==================================
-G gid         以某 gid 啟動的 pid
-U uid         以某 uid 啟動的 pid
-o               第一個仍在執行的程式
-n               最近一次仍然在執行的程式
==================================

pkill -u lwy ftp
# 殺 lwy 在執行中名為 ftp 的程式

pkill -nu lwy
# 殺 lwy 最後啟動的程式

pkill -u lwy
# 踢某用戶走