Отображение сообщений в tty с использованием whiptail через monit

Я хотел бы отобразить сообщение whiptail на экране входа, которое запускается monit , но мне не повезло.

Я понимаю, что это может быть связано с интерактивной / неинтерактивной оболочкой. Вот сценарий, который запускается monit .

 #!/bin/bash /usr/bin/whiptail --infobox 'Hello World.' 7 25 >/dev/tty1 

Есть трюк, или я должен избегать использования whiptail?

Я просто попробовал следующее и смог отправить вывод с моего рабочего стола на /dev/tty2 с помощью whiptail поэтому я думаю, что то, что вы делаете, будет казаться выполнимым. Пара вещей, которые я заметил.

1. разрешения

Мне нужно было быть root, чтобы отправить что-либо в /dev/tty2 . Я предполагаю, что вы используете это как monit пользователя, у которого, скорее всего, не будет прав на отправку данных на устройство tty.

2. --infobox

Переключатель --infobox , не работал в моей текущей оболочке, но я смог отправить --infobox в /dev/tty2 . YMMV. --msgbox работал в обоих случаях.

«Трюк» заключается в том, что whiptail (например, диалог) по умолчанию записывает свои сообщения в стандартную ошибку , поскольку обычная программа использует стандартный вывод для обновления экрана.

Вы можете перенаправить стандартную ошибку, поставив 2 рядом с значком > :

 #!/bin/bash /usr/bin/whiptail --infobox 'Hello World.' 7 25 2>/dev/tty1 

Дальнейшее чтение:

  • whiptailотображать диалоговые окна из сценариев оболочки
  • Как использовать whiptail для записи интерактивных сценариев оболочки
  • dialogотображать диалоговые окна из сценариев оболочки