最後更新: 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 與 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 最近一次仍然在執行的程式
# 殺 lwy 在執行中名為 ftp 的程式
pkill -u lwy ftp
# 殺 lwy 最後啟動的程式
pkill -nu lwy
# 踢某用戶走
pkill -u lwy