我試圖自動化我一次又一次面對的工作之一。 有一些端口,有時不被一些以前的工作正確地關閉..關閉所有進程從外殼拿着一個給定的端口
比方說,端口5000,5001
我想要做的就是看這些端口是否打開
,並殺死這些如果他們是開放
所以現在,我做
lsof -i :5000
和
端口kill -9 pid1
kill -9 pid2
等..
有沒有辦法通過5000和5001作爲參數,並自動執行此過程
我試圖自動化我一次又一次面對的工作之一。 有一些端口,有時不被一些以前的工作正確地關閉..關閉所有進程從外殼拿着一個給定的端口
比方說,端口5000,5001
我想要做的就是看這些端口是否打開
,並殺死這些如果他們是開放
所以現在,我做
lsof -i :5000
和
端口kill -9 pid1
kill -9 pid2
等..
有沒有辦法通過5000和5001作爲參數,並自動執行此過程
如果您想在使用它時自動執行此操作,請執行下列操作。
創建一個bash腳本,例如把它稱作「killMyPorts」,並添加以下內容:
#!/bin/bash
kill -9 `lsof -i :"${1}" | awk '{if (NR!=1) {print $2}}'`
一旦你所做的腳本運行(chmod U + X),您可以按以下執行:
./killMyPorts 5000
fuser
能爲你做這項工作。
kill_port_users() {
for port; do
fuser -n tcp -k "$port"
done
}
kill_port_users 5000 5001
或者:echo 5000 5001 | xargs -n 1 fuser -n tcp -k – kofemann 2013-02-19 20:06:12
你試過
kill -9 `lsof -i :5000`
或
kill -9 $(lsof -i :5000)
請不要宣傳不必要的使用SIGKILL - 這是一個好的方法可以讓SHM片段不被清理,臨時文件未被關閉,未被寫入的數據和日誌不被刷新等,只有在絕對必要時才應該使用。 – 2013-02-19 21:24:44
'killMyPorts.sh'?你的系統也有'lelf'嗎?見http://www.talisman.org/~erlkonig/documents/commandname-extensions-considered-harmful – 2013-02-19 21:25:34
不,它不:-)我刪除了擴展名 – 2013-02-19 21:57:45