gpt4 book ai didi

bash - 如何在bash中杀死后抑制终止消息?

转载 作者:太空宇宙 更新时间:2023-11-04 03:47:57 25 4
gpt4 key购买 nike

如何抑制在杀死一个进程后出现的Termied消息bash 脚本中的进程?

我尝试了set +bm,但不起作用。

我知道另一个解决方案涉及调用 exec 2>/dev/null,但那是吗?可靠的?如何将其重置回来以便我可以继续看到 stderr?

最佳答案

为了使消息静默,您必须在生成消息时重定向stderr。因为kill命令发送信号并且不等待目标进程响应,重定向 kill 命令的 stderr 对你没有好处。 bash 内置 wait是专门为此目的而设计的。

这是一个非常简单的示例,它杀死了最近的后台命令。 (Learn more about $! here.)

kill $!
wait $! 2>/dev/null

由于 killwait 都接受多个 pid,因此您还可以进行批量终止。这是一个杀死所有后台进程(当然是当前进程/脚本)的示例。

kill $(jobs -rp)
wait $(jobs -rp) 2>/dev/null

我是从 bash: silently kill background function process 被引导到这里的.

关于bash - 如何在bash中杀死后抑制终止消息?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27367257/

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