gpt4 book ai didi

linux - 如何暂时隐藏正在运行的 bash 脚本的输出?

转载 作者:太空狗 更新时间:2023-10-29 12:33:50 25 4
gpt4 key购买 nike

这个问题可能已经有人问过,也可能没有人问过,我在任何地方都找不到它,而且我是一个 Linux 初学者。

我有一个在我的 RHEL 4 服务器上运行的 ./start.sh 脚本,每隔一秒发送一次跟踪输出。示例:跟踪:服务器正在别名 1、2 等上运行...它用于确保服务器没有退出。

我需要运行我的一些 DDoS 保护工具和扫描器,因为它们是同时运行的。尽管由于所有跟踪输出,我永远看不到发生了什么!

我将如何暂时禁用输出,因为它已经在运行,同时保持它在后台运行,然后运行我的工具,然后在我完成后再次重新启用输出?

最佳答案

我可以看到两种解决方案:

  • 使用screen (最好),或者
  • 使用重定向和tail

例如:

$ stdbuf -oL ./start.sh > /tmp/start.sh.log &
$ tail -f /tmp/start.sh.log

执行此操作后,您可以在终端中看到日志消息。你可以杀死 tail 而不受惩罚,并在你想看到消息时重新启动它。当日志文件变得太大时,您可以使用以下方法将其缩短为零:

$ echo -n > /tmp/start.sh.log

Bash 的重定向可以无缝处理文件突然被截断的情况。不确定这是否适用于所有 shell。如果您的 shell 出现问题,您可以插入 tee

我添加了 stdbuf -oL 以“鼓励”shell 脚本到行缓冲区 stdout。那里缓冲自己输出的任何命令都不会受到影响,但它可能会有所帮助。

关于linux - 如何暂时隐藏正在运行的 bash 脚本的输出?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18524285/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com