Logs

查找訪問核心模組的程序

  • November 21, 2018

如何訪問訪問某個模組的使用者/程序列表?

我跑:

lsmod | grep ^uvcvideo

當沒有應用程序使用我的攝影機時,這將返回此行:

uvcvideo               86016  0

好吧,我有一些東西在執行,當行尾的“0”變成除 0 以外的任何值(實際上這通常是 1)時,它會向我發送一個通知,告知我的相機正在使用中。

我想知道是否有將 0 變為 1 的程序日誌,或者何時/如何訪問哪些模組。

通常,沒有日誌文件。不過,您可以使用一些工具來製作!

核心有一個用於 try_module_get() 函式的內置跟踪點。這是增加模組引用計數的函式。此跟踪點位於module子系統中並被稱為module_get

https://stackoverflow.com/questions/448999/is-there-a-way-to-figure-out-what-is-using-a-linux-kernel-module/449856(長讀)。

為了讓您入門,您可以嘗試perf trace -a --no-syscalls -e module:module_get -e module:module_put. 這顯示了程序名稱,但不顯示 PID

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