Доброго всем!
Была задача, запускать систему с автологином в командную строку и после запуска выполнять определенную программу в screen (через sh скрипт, который перед запуском выводит некоторое инфо), вывод информации от которой шел бы в терминал.
В Ubuntu Server 14.04 задачу решил правкой tty1.conf для осуществления автологина и добавлением sh скрипта в init.d с последующей обработкой update-rc.d. При запуске на экране появлялся текстовый интерфейс программы и она работала успешно.
Вот собственно сам скрипт clstart.sh:
#!/bin/sh -e
clear
echo "##################################################"
cd /home/username/cl
screen -S cl ./clayprog
Необходимо было перейти на 16.04 (по некоторым аппаратным соображениям). Здесь автовход реализовал через override.conf для сервиса getty@tty1.service.d, а загрузку нужного мне скрипта созданием своего сервиса
[Unit]
Description=ClProg
After=multi-user.target
[Service]
Type=idle
ExecStart=/bin/sh /home/username/cl/clstart.sh
[Install]
WantedBy=multi-user.target
В таком случае, если в моем скрипте запуск нужной программы идет через screen, то после рестарта системы ничего не запускается (в логе пишет must be connected to terminal и переменная TERM не инициализирована), а если напрямую, то процесс запускается в фоне и работает, а я вижу пустое приглашение командной строки после автологина, но мне то нужно, чтобы вывод информации от работы моей программы шел в активный терминал.
Умы, подскажите, как побороть системд, как перенаправить вывод после автологина?