我有一个命令运行了很长时间,我不想打扰它。但是,我想继续检查这个过程(大部分时间都是远程的)。我不断地通过 , 等命令监视进程top
。iotop
该stat
进程是一个基于终端的进程,它不是通过或类似方式启动screen
的tmux
。所以检查输出的唯一方法是使用物理访问。
我知道其中/proc
包含许多有关该过程的信息。所以我想知道它是否也可以显示输出(甚至只是最后一批输出——char/word/line)。我在 中搜索/proc/<pid>/fd
,但找不到任何有用的东西。
下面是输出ls -l /proc/26745/fd/*
lrwx------ 1 user user 64 Oct 28 13:19 /proc/26745/fd/0 -> /dev/pts/17
lrwx------ 1 user user 64 Oct 28 13:19 /proc/26745/fd/1 -> /dev/pts/17
lrwx------ 1 user user 64 Sep 27 22:27 /proc/26745/fd/2 -> /dev/pts/17
任何指针?
我会为此使用
strace
:这将跟踪
write(2)
PID 及其子进程的所有系统调用,并以十六进制转储写入文件描述符 1 和 2 的数据。当然,这不会让您看到进程已经写入 tty 的内容,但会从某个点开始监视所有写入。
此外,
strace
不适合更改其输出格式 -如果您需要更多灵活性,您应该探索使用gdb(1)
或编写一个小程序。ptrace(2)