有没有办法找出可执行文件是否/何时被调用?

有没有办法找出可执行文件是否/何时被调用?

我试图弄清楚 AUCTeXdvipng在渲染 LaTeX 预览时是否实际上正在调用。虽然这可能不是找出这个问题的最佳方法,但一种可能是检查可执行文件是否dvipng正在被调用 - 系统上没有其他东西会使用它。编译输出没有提及dvipng,也top没有显示它正在运行。

对于非 emacs 用户,AUCTeX 是一个在 emacs 内部运行的 emacs 包,可以调用外部可执行文件,即dvipng.

所以,我的问题是:对于任意可执行文件,是否有某种方法可以检查它是否在最近运行过以及何时运行过?更多信息,比如调用它的参数,也会很有用。

我尝试查看 emacs 进程是否dvipng 通过使用调用strace(我不知道我是否正确执行了此操作)

$ strace emacs corrmodel.tex 2>&1 | grep dvipng

然后运行编译,但我刚刚得到输出

read(15, "falias 'preview-start-dvipng #[n"..., 4096) = 4096

这是正确的程序吗?有没有更好的办法?

答案1

我通常这样做的方式 - 快速而肮脏 - 是重命名/usr/bin/dvipng/usr/bin/dvipng.bin,然后创建一个简单的脚本,命名/usr/bin/dvipng如下:

#!/bin/sh
echo "$*" > /tmp/dvipng-$$.log
exec /usr/bin/dvipng "$@"

使其可执行chmod +x /usr/bin/dvipng并运行您想要运行的任何内容。然后检查是否/tmp/dvipng-*.log存在,如果存在,内容应该是参数列表。

答案2

如果这样做ls -lut /usr/bin/dvipng,它会告诉您上次使用的时间。这不是一个简单的解决方案吗?

相关内容