kill

最後更新: 2020-07-31

目錄

 


kill

 

kill [-s signal|-p] [-q sigval] [-a] [--] pid...

 

-l, --list

 1) SIGHUP       2) SIGINT       3) SIGQUIT      4) SIGILL       5) SIGTRAP
 6) SIGABRT      7) SIGBUS       8) SIGFPE       9) SIGKILL     10) SIGUSR1
....

 


skill

 

These  tools are obsolete and unportable. The command syntax is poorly defined.  

Consider using the killall,  pkill, and pgrep commands instead.

 


killall

 

Install

apt-get install psmisc     # Ubuntu

yum install psmisc         # Centos

Check Version

killall -V

killall (PSmisc) 22.20

Syntax

killall [opts]  name ...

 * If no signal name is specified, SIGTERM is sent.

 * return code zero if at least one process

-s, --signal

killall -s HUP smartd

or

killall -HUP smartd

or

killall -1 smartd

-u, --user

Kill only processes the specified user owns.

-w, --wait

Wait for all killed processes to die.

-I, --ignore-case

Do case insensitive process name match.

-r, --regexp

Interpret process name pattern as an extended regular expression.

 


pgrep 與 pkill

 

pgrep

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

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

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

--

pgrep 是給出條件後返回 process ID, 它的功能與 sysvinit-utils 的 pidof 有點接近

# 返回所有 sshd 的 process ID

pgrep sshd

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

# 返回以 lwy 用戶啟動的 sshd 的 process ID

pgrep -u lwy sshd

More Example

# 所有以 lwy 用戶啟動的 PID

pgrep  -u lwy

30248
30249

# 總共有幾多個 Proccess

pgrep -c -u lwy

2

# 連 Proccess 名一齊顯示

pgrep -l -u lwy

30248 sshd
30249 sh

# 為某軟件加速(renice)

lamp:~# renice -4 `pgrep par2`

Other Options

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

pkill

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

pkill -u lwy ftp

# 殺 lwy 最後啟動的程式

pkill -nu lwy

# 踢某用戶走

pkill -u lwy
 

 

 

 

Creative Commons license icon Creative Commons license icon