我在一台机器上运行了一个很长的python脚本:
[root@server1]# ps aux | grep python
root 30640 15.6 0.6 296416 102444 pts/4 S+ 11:29 2:38 python my_script.py
但我现在正在笔记本电脑上远程工作,想查看该脚本的输出。我通常只会tail
从命令中获取输出文件tee
,但这样做不行。
所以我下载了这个叫做ttylog
(http://search.cpan.org/~bbb/ttylog-0.83/ttylog) 查看进程的输出。这看起来相当简单,所以我通过 ssh 进入该进程server1
并运行:
[root@server1 ttylog-0.83]# ./ttylog pts/4
DEBUG: Scanning for psuedo terminal pts/4
DEBUG: Psuedo terminal [pts/4] found.
DEBUG: Found parent sshd pid [28198] for user [root]
Process 28198 attached - interrupt to quit
但这是错误的过程——所以我没有得到任何输出。
我需要将其附加到进程 30640,即 python 进程。有人知道怎么做吗?
答案1
ttylog
没什么特别的,只是对 ssh pid 进行 strace:
exec "strace","-e","read,write","-s16384","-x","-o",$write,"-p",$pid
or die "exec: $!";
因此,为了获得一些相关结果,您可以自己简单地 strace python 解释器。