Как я могу отключить системные сообщения, которые время от времени появляются в моем сценарии BASH (например, после входа в систему через SSH откуда-то), как на скриншоте ниже? Сценарий BASH использует инструмент диалога, и я запускаю его в Ubuntu 18.04. Я попробовал отключить rsyslog, но это не помогло. Вот скриншот, чтобы проиллюстрировать это поведение: ссылка на сайт.
Мой служебный файл systemd выглядит примерно так:
[Ед. изм]
Описание = bashscript
После = network.target
После = getty.target
Conflicts=getty@tty1.service
[Обслуживание]
Тип = oneshot
PIDFile = / запустить / bashscript.pid
ExecStart = / bin / openvt -s -w - / путь / к / bashscript
StandardInput = tty-force
StandardOutput = наследовать
StandardError = наследовать
[Установить]
WantedBy = graphical.target
Спасибо.
Я думаю, ваша проблема связана со следующими строками
StandardInput=tty-force
StandardOutput=inherit
StandardError=inherit
Это означает, что стандартный ввод принимает ввод / dev / console, поскольку теперь в вашей службе указан TTYPath.
Устанавливая наследование стандартного вывода и стандартной ошибки, это означает, что они также принимают на себя настройку стандартного ввода, которым в данном случае является / dev / console.
Я не на 100% уверен в этом, но я полагаю, что именно поэтому вы видите результат, который видите. Если вам все еще нужен ввод, но не нужен вывод, вероятно, вам просто нужно иметь:
StandardInput=tty-force
Без двух других строк. Если вы на самом деле не используете Input, вы также можете избавиться от этой строки.