Как перенаправить вывод из скрипта запущенного через сервис systemd на монитор?

На Raspi OS (без GUI) запускается скрипт через systemd. Логи пишутся в /var/log/logfile. Нужно также выводить инфу для пользователей на монитор. При старте происходит вывод из systemd, на сколько понимаю, и еще из чего-то. Подскажите, как туда сделать вывод из Bash-скрипта?


Ответы (2 шт):

Автор решения: eri

Просто посмотреть

journalctl -u rpiunit.service -e -f

Можно c rsyslog в терминал, я пишу в четвертый, пример /etc/rsyslog.conf

module(load="imuxsock") # provides support for local system logging
module(load="imklog")   # provides kernel logging support
$ActionFileDefaultTemplate RSYSLOG_TraditionalFileFormat
$FileOwner root
$FileGroup adm
$FileCreateMode 0640
$DirCreateMode 0755
$Umask 0022
$WorkDirectory /var/spool/rsyslog
$IncludeConfig /etc/rsyslog.d/*.conf

*.*     /dev/tty4 # вывести весь лог в 4ую консоль
→ Ссылка
Автор решения: Egorithm

В общем, вот мои наблюдения:

  • Вывод stdout и stderr в нужную консоль command &>> /dev/ttyX, где X - это номер консоли (обычно от 1 до 6).
  • Переключаться между консолями можно вручную: Ctrl + Alt + ( F1 - F6 ).
  • Если у вас OS с GUI, то Ctrl + Alt + F7 должен вернуть вас на Desktop.
  • Также, что намного лучше, переключить можно прямо из bash-скрипта с помощью команды chvt X.
  • А еще можно настроить автологин для нужной консоли через getty-сервис (systemd).
  • RaspiOS без GUI по умолчанию выводит логи (в основном из systemd) в /dev/tty1.
→ Ссылка