我正在运行一个带有详细模式fls
选项的程序(来自 Sleuth Kit) 。-v
然而时间太长了,而且该程序从昨天开始仍在运行。我想如果没有详细模式,它会运行得更快,但我不确定完成运行需要多长时间,以及是否值得在没有详细模式的情况下停止并重新运行它。所以我想知道是否可以在运行过程中关闭详细模式并在之后恢复运行?谢谢!
答案1
正如 lynxlynxlynx 指出的那样,除非程序作者为此做出了规定,否则您无法在程序运行时更改详细程度,但您可以阻止它打印到终端,以防出现瓶颈。
为此,请在告诉 shell 不要发送 SIGHUP 后关闭终端。当您尝试退出时,大多数 shell 都会向仍在运行的任何作业发送 SIGHUP。您可以告诉 shell 不要这样做。有多种方法可以做到这一点;最直接的可能是使用disown
.
如果还没有,请使用 暂停作业ctrl+z
,然后使用 使其在后台再次运行bg
,然后运行disown
。 shell 不再将此进程作为作业进行跟踪,因此退出时不会发送 SIGHUP。
如果您已经将该程序放入后台,那么如果在该程序之后启动了任何其他后台作业,您将需要您感兴趣的程序的作业规范作为参数传递给bg
和disown
。
答案2
也许有一个黑客可以允许将作业的输出文件描述符更改为/dev/null
,但我不知道。无论如何,程序仍然会写入所有这些行,它们只会被丢弃。因此,只有当终端显示是瓶颈时,这才会有帮助,而不是消息生成。