Linux
閱讀“/proc”以了解程序是否打開了埠
我需要知道具有給定 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
.