Отключение системных сообщений, мешающих запуску BASH-скрипта
Как я могу отключить системные сообщения, которые время от времени появляются в моем 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 - / path / to / bashscript
StandardInput = терминал-сила
StandardOutput= унаследуют
StandardError= унаследуют
[Установить]
WantedBy = graphical.target
Спасибо.
1 ответ
Я думаю, что ваша проблема заключается в следующих строках
StandardInput=tty-force
StandardOutput=inherit
StandardError=inherit
Это означает, что стандартный ввод принимает входные данные /dev/console, так как теперь в вашем сервисе указан TTYPath.
Установка стандартного вывода и стандартной ошибки для наследования означает, что они также принимают настройку стандартного ввода, которая в данном случае является /dev/console.
Я не на 100% в этом, но я думаю, именно поэтому вы видите результат, который вы видите. Если вам все еще нужны входные данные, но вы не хотите получать выходные данные, вероятно, вы должны просто:
StandardInput=tty-force
Без двух других строк. Если вы на самом деле не используете Input, вы также можете избавиться от этой строки.