簡體   English   中英

在swapper中執行時,Linux內核模塊中的任務所有者pid

[英]Task owner pid in a Linux kernel module when executed in swapper

給定一個任務實例具有pid 0和comm“ swapper / 0”,如何獲取所有者pid?

==編輯==

使用Netfilter掛鈎會發生這種情況。

在操作系統Unix中,當另一個進程執行fork()系統調用時,將創建除進程0(交換程序)以外的每個進程。 調用fork的進程是父進程,而新創建的進程是子進程。 每個進程(進程0除外)都有一個父進程,但可以有許多子進程。

操作系統內核通過其進程標識符來標識每個進程。 進程0是在系統啟動時創建的特殊進程。 分叉子進程(進程1)后,進程0成為交換進程(有時也稱為“空閑任務”)。 進程1(稱為init)是系統中所有其他進程的始祖。

如果數據包是UDP,則netfilter傳出鈎子上下文中的current任務將始終具有TGID(用戶空間中的PID)。

對於SYN TCP數據包, current任務將具有TGID,但ACK數據包將沒有。 要檢索TGID,您必須使用數據包長度從SYN數據包計算套接字順序。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM