禁止注销消息 ubuntu

禁止注销消息 ubuntu

我添加了几行要在系统范围内执行的代码/etc/bash.bashrc,例如通过电子邮件通知登录等。我注意到,在exit调用时logout,系统会将这些行打印给用户,如下所示:

USER@IP:~$ exit
logout
[1]+  Done                    cat /home/USER/a.txt | ssmtp [email protected]
Connection to IP closed.

我怎样才能在我的系统上抑制这种情况?

答案1

您的输出部分[1]+ Done ...似乎来自 Bash 的作业控制。您通常会在后台启动的命令终止时获得它,如下所示:

$ sleep 1 &
[1] 20931

$ 
[1]+  Done                    sleep 1

抑制这些作业控制输出的一个解决方案是在子 shell 中启动后台命令,将其括在括号中:

$ ( sleep 1 &)

$ 

我无法判断这是否适合您的情况,因为您还没有展示您的实际命令,而且这种方法有一些缺点:

该作业无法再受控制(例如jobs,命令),但由于它是从启动脚本运行的,因此我认为无论如何这都不是故意的。bg如果 命令正在修改其环境(例如设置变量或更改工作目录),那么这只会影响子 shell,而不会再影响脚本的其余部分。fg


另一种方式是让 shell 在开始使用后忘记该作业disown,例如:

$ sleep 1 & disown
[1] 27248

$ 

但是,这样一来,它在 shell 退出时也不会再终止,因此如果我理解正确的话,它可能会在用户注销后继续运行(如果不理解正确,请纠正我)。


资料来源及进一步阅读:

相关内容