2014-04-23 33 views
2

我想kill在OS X上使用端口161(SNMP)相關的進程中運行找到並殺死的過程,在端口

我嘗試使用netstatlsof得到與該端口關聯的進程ID,但這些似乎都沒有列出PID:

$ netstat -an | grep 161 
udp4  0  0 *.161     *.* 

$ netstat -anp udp | grep 161 
udp4  0  0 *.161     *.* 

lsof -i :161 
+0

在'netstat'中使用'-p'選項 – jyotesh

+0

我在Ubuntu上,如果我運行命令「sudo netstat -anp」而不是「netstat -anp」,我正在獲取進程ID。 – msound

+0

嘗試'netstat -anp | grep:161 [[:blank:]]'。或'lsof -w -n -i tcp:161'或'fuser -n tcp 161' –

回答

0

SNMP是UDP,而不是TCP。它不會「聽」,因爲UDP套接字沒有這種概念。

而是根據其名稱或進程ID來查找進程。

+0

從技術上講,這是不正確的,[有基於TCP的SNMP](https://tools.ietf.org/html/rfc3430),但它不常用。 'snmpd'似乎實現了TCP(請參閱'man snmpd'),其手冊頁甚至聲明瞭*「默認情況下,snmpd在所有IPv4接口上偵聽UDP端口161上的傳入SNMP請求。」*但不幸的是,措辭可能是錯誤的。 「listen」!='listen()'。信息OP在* can *之後可以使用'netstat -anup |檢索grep:161',只是不在OS X上。 –