脚本中如何使kill后台进程后不提示Terminated信息

在网上找了很多关于kill后台进程后不提示Terminated信息的文章,有好多小伙伴们都说使用 set +m,自己在命令行试了下确实可以,但只是在命令行中有效,在脚本中却不起作用

set +m  #通过关闭“监控模式”,使shell终止后台作业后不打印报告。

接着又找了很多文章,试了很多不同的办法,结果确实相同的不起作用,直到找到了这篇文章:shell中文 如何在bash中殺死後禁止終止消息 ,有兴趣的朋友可以看看

不起作用的原因

'set + m'只是禁用当前shell的作业控制(参见'help set')。因此,如果您在子shell中输入命令(set + m),则不会影响当前shell的作业控制设置。

解决办法

可以把需要后台运行的命令写到 ( ) 括号里,因为小括号会默认打开一个子shell。这样当你再去kill或killall这个进程时就不会输出当前shell的作业控制输出信息

发布了40 篇原创文章 · 获赞 59 · 访问量 2万+

猜你喜欢

转载自blog.csdn.net/weixin_44208042/article/details/102612614