Debian跟BSD上類似killall5的指令? - Linux

Agatha avatar
By Agatha
at 2011-10-12T05:20

Table of Contents

我偶爾會在SSH遠端伺服器用到killall5這個指令

(killall5的man page摘要:
killall5 is the SystemV killall command. It sends a signal to all processes
except kernel threads and the processes in its own session, so it won't kill
the shell that is running the script it was called from. Its primary (only)
use is in the rc scripts found in the /etc/init.d directory.)

我用killall5的目的是砍光"top -u `whoami`"顯示的所有process

(使用killall5後同時SSH連線也會斷掉, 不過對我來說沒差)

但killall5這個指令不是每個distro都有(像Debian(wheezy/sid)跟FreeBSD就沒有)

請問該如何用其他指令湊出killall5的功能呢?

我自己亂試了很多種 不過都失敗

例如

killall -u $USER
pkill -u $USER
(...下略十幾種不同的寫法)

基本上"失敗"的原因都是一樣的 說明如下

假設原本"top -u `whoami`"的process pid清單長這樣:

123
456
789

假設123是SSH連線後得到的shell(bash)

456跟789是我想要砍掉的process

此時若使用killall5 則3個process都會被砍掉

(雖然123也被砍掉了導致我SSH斷線

不過沒差 再SSH過去就好了 重點是456跟789一定要砍乾淨)

然而若用我亂湊的"pkill -u $USER"之類的指令

123被砍掉後SSH會斷線 但456跟789還活著(也就是沒有達到我的要求)

也就是說若遇到遠端伺服器沒有killall5的情況

我就只能top -u $USER然後一個process一個process慢慢砍(k pid signal)

(456跟789只是舉例 實際上要砍的process通常都十幾個 打pid會打到手軟)

總結我的問題如下:

a) 如何用其他指令湊出跟killall5相同的功能?

b) 湊出來的指令要可在Linux及FreeBSD使用

歡迎提供任何想法 感激不盡!

--
Tags: Linux

All Comments

Edith avatar
By Edith
at 2011-10-13T19:57
不知道 kill -9 可不可以?
Brianna avatar
By Brianna
at 2011-10-15T22:42
ps aux|awk '{print $1, $2}'|grep `whoami`|awk '{print
$2}'|xargs kill -9
Enid avatar
By Enid
at 2011-10-20T12:06
不同*nix系列可能要針對 ps 調整參數以及 awk 印的欄位號
Necoo avatar
By Necoo
at 2011-10-22T13:37
忘了一件事, 在 xargs 之前要再加上一個 grep -v $$ 才接
|xargs... (假設是用bash)
Yedda avatar
By Yedda
at 2011-10-26T18:17
ps aux|awk '{print $1, $2}'|grep `whoami`|awk '{print
$2}'|grep -v $$|xargs kill -9
Leila avatar
By Leila
at 2011-10-30T17:23
killall -9 -u uid?
Gary avatar
By Gary
at 2011-11-01T17:36
你從第一個 | 開始,每次增加一個 | ,看執行結果就知道啦
Edward Lewis avatar
By Edward Lewis
at 2011-11-04T10:15
最好第一個awk再加上印出start time並印於每列最前,然後再
加個sort 的 pipe,這樣可以確保比這一串pipes早的程式會先
Enid avatar
By Enid
at 2011-11-07T23:03
被kill到,因為這串pipes程式若比程式更早被kill,就崩潰了
Daph Bay avatar
By Daph Bay
at 2011-11-11T20:23
debian6 在 /sbin/killall5

Debian和OpenSUSE的抉擇問題

Genevieve avatar
By Genevieve
at 2011-10-11T21:39
由於經歷過網卡抓不到的問題,加上目前對Windows的依存度仍舊很高 這次再次試用,大概也只會裝在VirtualBox裡而已 言歸正傳, 上回兩種發行版都裝過一遍後,同樣都不能抓到Wi-fi訊號 所以應該不至於存在有哪個驅動程式比較完備的問題 比較有疑義的地方是, 即使OpenSUSE在安裝時 ...

不是 root 要如何 mount ISO 檔?

Ida avatar
By Ida
at 2011-10-11T19:59
是不是一定要 root 才能 mount ISO 檔? 寫了一個 script 來 mount ISO, 然後將這個 script 的 owner 改成 root, 然後又 chmod u+s, 可是執行後還是無法 mount 成功, 一定要 sudo 才可以, 有什麼方法可以不用 root password ...

連不上xrdp server

Todd Johnson avatar
By Todd Johnson
at 2011-10-10T16:24
推 sunneo:會不會B的xrdp聽的不是3389? 10/08 22:28 前情提要: A機 = 遠端(rdp)的進去的伺服器 B機 = 遠端(rdp)進不去的伺服器 C機 = 客戶端(我) 回報: 1.useratB:~$ netstat -an | grep and#39;\andlt;LISTE ...

ubuntu mysql tracking

Lydia avatar
By Lydia
at 2011-10-10T15:47
因為在移機 將mysql 內的東西 1.匯出成CSV資料格式 其他格式不變 大概有1G多 2.上傳的時候 有把檔案上限改過了(upload_max_filesize = 2000M post_max_size = 2000M memory_limit = 2048M) 3.不過現在發現有$c ...

請問如何燒錄CentOS 5.7

Mia avatar
By Mia
at 2011-10-10T15:44
我也有個燒錄的問題就是 我下載了CentOS-6.0-i386-bin-DVD.iso 總共4.38G 然而我要燒錄的時候發現我的DVD光碟少他不知道幾MB 導致不能燒入!? 我想知道該如何讓它燒進DVD光碟裡面呢? 想說沒關係安裝在Virtual Box而已,就用掛載就好了 VB設定 ...