使用htop
及其树视图(由t
或触发F5
),人们可以通过父级查看进程,并将它们之间的关系布局为树。
有没有办法可以慢动作观察进程树是如何演变的?也就是说,以某种方式记录历史并以自定义速度播放,有点像允许逐帧播放的视频播放器?现在,它有时闪得太快而无法跟踪。
htop
也欢迎使用替代工具。
答案1
有限的通用慢动作重播方式
您可以使用script
来记录htop
,例如:
script -O typescript -T typescript.timing -c 'htop -t'
script
将在htop
退出后立即退出。或者:
script -O typescript -T typescript.timing
让你进入一个 shell,你可以在那里运行和/或做其他事情。在这个方法中,shellhtop -t
很重要;只有这样才能退出。exit
script
退出后script
,你可以慢动作重播:
scriptreplay typescript.timing typescript 0.1
限制:
script
记录终端会话中发生的事情。就您而言,它实际上并不记录进程树。它记录htop
打印的内容,因此它打印了树。但如果htop
没有向您显示某个进程(因为它是瞬态的,或者您只是滚动浏览了树的错误部分),那么scriptreplay
也不会显示该进程。考虑htop -t -d 1
让瞬态进程更容易被看到。无论如何script
+htop
绝不是审计操作系统进程的可靠方法。我的意思是你可能会错过一些流程。终端会话中发生的情况取决于终端的大小。在不同大小的终端(尤其是在任何方向上都较小的情况下)中播放可能会导致错位、伪影等。在播放过程中调整终端大小可能会导致额外的伪影。
如果你
scriptreplay
用Ctrl+打断c,那么你可能需要运行reset
或以其他方式使你的终端恢复正常状态。据我
scriptreplay
所知,它不是交互式的,甚至不能暂停。我发现scriptreplay_ng
,在这方面似乎更好一些;但我还没有测试过。