我想在Java,Ubuntu中獲取給定PORT ID的進程名稱。我發現樣本如何在Windows中執行(Runtime中的tasklist)。但我需要在Linux中知道這一點。在Ubuntu-Linux上獲取給定Java端口的進程名稱?
1
A
回答
4
如果要列出監聽到一定端口的應用程序,你可以結合使用unix命令lsof
與awk
:
lsof -i :80 | awk '{print $1}'
這將列出你,即從該處理命令名,其監聽端口80
在你javacode你必須寫以下內容:
int port = 80;
Process p = Runtime.getRuntime().exec("lsof -i :" + port + " | awk '{print $1}'");
BufferedReader reader = new BufferedReader(new InputStreamReader(p.getInputStream()));
while ((s = reader.readLine()) != null) {
System.out.println(s);
}
請注意,如果你想獲得基於一個進程ID(PID),進程名稱,你可以使用它代替:
Process p = Runtime.getRuntime().exec("ps -ef | awk '{if($2==\"" + pid + "\") print $8}'");
2
/proc
文件系統有幫助。 /proc/$PID/exe
是與進程ID對應的可執行文件的符號鏈接。顯然,你可以簡單地從Java讀取該文件。
編輯:之前,你問過「進程ID」,現在它是關於一個TCP/IP端口...,使我的答案無用。
+0
謝謝。但是請介意讓我知道示例代碼,請使用Java? –
相關問題
- 1. 如何獲取C#中的開放端口的進程名稱?
- 2. 以編程方式獲取給定進程名稱和ppid
- 3. 如何使用java在linux中獲取特定端口上的進程信息
- 4. 獲取服務名稱的端口號?
- 5. 獲取進程名稱窗口標題名稱和安裝的軟件名稱
- 6. SharpPcap獲取進程名稱
- 7. 如何獲取端口名稱列表?
- 8. 從進程名稱獲取進程ID
- 9. 如何在Windows上使用Qt獲取開放端口的進程名稱和二進制路徑?
- 10. 從java獲取接口名稱
- 11. 獲取給定Enum值的枚舉名稱的Java
- 12. 通過窗口句柄獲取未知進程的名稱?
- 13. 如何獲取服務器名稱,端口和上下文
- 14. 以編程方式獲取友好端口名稱
- 15. 如何在QT中獲取加載進程的進程名稱
- 16. 獲取僞終端的主端口名稱
- 17. 獲取Java程序的名稱
- 18. 獲取模塊名稱和進程名稱在LINUX C++
- 19. 端口到Java中的服務名稱?
- 20. Java中COM端口的友好名稱?
- 21. 如何在WPF中獲取打印機的名稱和端口名稱?
- 22. 如何通過給定的元素名稱獲取pvob名稱?
- 23. 從進程名稱獲取應用程序名稱
- 24. 如何從進程名稱獲取應用程序名稱?
- 25. 如何使用給定名稱來殺死java進程?
- 26. 獲取java進程的名稱而不是pid?
- 27. 獲取終端名稱
- 28. 如何在Mac OS上按名稱獲取進程?
- 29. 從C#獲取正在運行的Java程序的名稱(如.NET應用程序的進程名稱)
- 30. 通過PID獲取進程名稱
你的意思是進程id? – assylias
不是進程ID。我想知道給定端口的進程名稱。 –
@Débora我認爲你剛剛改變了以前「如何獲得給定PID的進程名稱」的整個問題的本質。 –