Ssh
如何查看 TCP 的程序 ID?
當我想查看應用程序的程序 ID 時,我會這樣做
ps -aux | grep <application>
。例如,當我這樣做時,我會ps -aux | grep ssh
看到 SSH 的程序 ID。但是當我這樣做時,
ps -aux | grep tcp
它什麼也沒有輸出,即使我正在積極使用網際網路。如何查看 TCP 的程序 ID?
TCP 不是一個程序,而是核心內部的一個堆棧或子系統。因此,它沒有“程序 ID”,儘管作為其操作的一部分工作的核心執行緒可能會這樣做。執行 TCP 堆棧工作所需的工作分佈在多個 kthread、使用者空間程序的核心堆棧和其他地方。
要查看您機器上的 kworkers,例如:
% pgrep -af kworker | head 24 kworker/1:0H-events_highpri 30 kworker/2:0H-events_highpri 36 kworker/3:0H-events_highpri 42 kworker/4:0H-kblockd 48 kworker/5:0H-events_highpri 54 kworker/6:0H-events_highpri 60 kworker/7:0H-events_highpri 120 kworker/1:1H-events_highpri 121 kworker/0:1H-kblockd 151 kworker/7:1H-events_highpri
其中一些專門用於特定類型的工作,而另一些則範圍更廣。由於 TCP 堆棧不僅涉及網路,還涉及 CPU 調度程序、記憶體和其他資源,因此核心的許多不同部分最終可能會抽像地參與處理 TCP 數據包的前進過程。