Linux

閱讀“/proc”以了解程序是否打開了埠

  • July 18, 2021

我需要知道具有給定 PID 的程序是否在不使用外部命令的情況下打開了埠。然後我必須使用/proc文件系統。例如,我可以讀取該/proc/$PID/net/tcp文件並獲取有關該程序打開的 TCP 埠的資訊。但是,在多執行緒程序中,該/proc/$PID/task/$TID目錄也將包含一個net/tcp文件。我的問題是:

我需要檢查所有執行緒net/tcp文件,還是將執行緒打開的埠寫入程序net/tcp文件。

例如,我可以讀取 /proc/$PID/net/tcp 文件並獲取有關程序打開的 TCP 埠的資訊。

該文件不是程序打開的 tcp 埠列表。它是目前網路命名空間中所有打開的 tcp 埠的列表,對於在同一網路命名空間中執行的程序,內容與/proc/net/tcp.

要查找程序打開的埠,您需要從 獲取套接字描述符列表/proc/<pid>/fd,然後將這些描述符inode/proc/net/tcp.

引用自:https://unix.stackexchange.com/questions/226276