我有一个运行了很长时间的命令,我不想打扰。但是,我想继续检查该过程(大部分时间是远程检查)。我通过像命令不断地监测这过程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
:
strace -qfp PID -e trace=write -e write=1,2
这将跟踪write(2)
PID及其子进程的所有系统调用,并十六进制转储写入文件描述符1和2的数据。
当然,这不会让您看到该进程已写入tty的内容,而是从一点开始监视所有写入。
同样,strace
不能更改其输出格式-如果需要更大的灵活性,则应探索使用gdb(1)
或编写一个小程序ptrace(2)
。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句