跟踪守护进程尝试查找其配置文件的位置

跟踪守护进程尝试查找其配置文件的位置

我在 kubuntu 系统上安装了一个守护进程,它会尝试在未知位置查找特定配置文件。文件系统中已填满了指向配置文件的符号链接,但它仍然抱怨“文件未找到”。

我可以编写一些命令来记录所有访问硬盘上不存在的文件的尝试,以便我可以找到它尝试查找文件的位置?

答案1

如果你知道进程的 PID,你可以对进程使用 strace:

strace -f -p 123 | tee testoutput.txt

(假设 pid 为 123)。“-f”代表“跟随分支”(简化说法),“-p”表示“PID 跟随”。man strace有关更多详细信息,请参阅。简而言之,strace 跟踪进程尝试的所有操作,例如打开文件、读取或写入文件。最好的方法是将输出重定向到文件进行分析——在我的示例中,这是通过将其传输到 tee 来实现的,它将输出拆分为显示在控制台上以及写入指定的文件。

在输出中,查找类似

read(51, 0x7f287a7b36f0, 4096)          = -1 EAGAIN (Resource temporarily unavailable)

(是的,这是错误的错误——但这是我目前唯一能找到的错误)——所以后面read跟着括号里的东西,然后是一些空格,后面跟着一个“=”和一个负数(=错误)。我猜你应该找到像“ENOTFOUND”这样的东西来表示丢失的文件(不知道确切的错误代码)。

相关内容