Назад | Перейти на главную страницу

Отключение сообщений systemd, которые мешают запуску сценария 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 - / путь / к / 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, вы также можете избавиться от этой строки.