如何禁用 BASH 脚本中偶尔弹出的 systemd 消息(例如,在我从某个地方通过 SSH 登录到机器后),如下面的屏幕截图所示?BASH 脚本使用对话框工具,我在 Ubuntu 18.04 上运行它。我尝试过的一件事是禁用 rsyslog,但没有帮助。以下是说明此行为的屏幕截图:关联。
我的 systemd 服务文件如下所示:
[单元]
描述=bashscript
之后=网络.目标
之后=getty.target
[服务]
类型=oneshot
PID文件=/运行/bashscript.pid
ExecStart=/bin/openvt -s -w --/path/to/bashscript
标准输入=tty-force
标准输出=继承
标准错误=继承
[安装]
WantedBy=graphical.target
谢谢。
答案1
我认为你的问题在于以下几行
StandardInput=tty-force
StandardOutput=inherit
StandardError=inherit
这意味着标准输入接受 /dev/console 的输入,因为您的服务中现在指定了 TTYPath。
通过设置标准输出和标准错误来继承,意味着它们还承担标准输入的设置,在本例中是 /dev/console。
我对此并不完全确定,但我想这就是您看到输出的原因。如果您仍然需要输入但不想要输出,那么您可能应该这样做:
StandardInput=tty-force
没有其他两行。如果您实际上不使用输入,您也可以删除该行。