查看后台进程正在做什么

查看后台进程正在做什么

我的 unix 服务器上当前有一个后台进程,其运行时间比应有的时间长。

我记不住允许我查看后台进程输出的命令。我会记得收藏这个答案!

答案1

如果您不确定它是否在执行任何操作,使用“strace”也可能会有所帮助。

如果你的应用程序是“dhcpd”服务,请运行ps ax | grep [d]hcpd

$ ps axufw | grep [d]hcpd
dhcpd    21645  0.0  0.1  19156  4956 ?        Ss   Oct02   0:00 /usr/sbin/dhcpd -f -q -4 -pf /run/dhcp-server/dhcpd.pid -cf /etc/ltsp/dhcpd.conf

您的 PID 是 21645,因此您可以运行sudo strace -p 21645。或者,如果您已经是 root 用户,则删除“sudo”。

它将实时从您的应用程序获取系统调用并准确地告诉您您的程序正在做什么。

注意:将 grep 命令的字母括在括号中,以滤除 grep 命令本身。

答案2

作为 Mariano Montañez Ureta 的后续。

如果您可以在jobs窗口中看到该任务,那么您应该能够看到类似这样的内容:

$ jobs
[1]+  Running                 tail -f .ssh/known_hosts &

如果您随后使用该fg命令并结合作业编号,则可以将其带到前台,即fg %1会将我的tail命令带到前台。您还可以使用该fg命令和 PID。

答案3

使用 fg 表示前景:)

答案4

tail -f whatever-file-the-process-is-writing-to.txt

相关内容