Я пытаюсь отправить ввод в интерактивную команду, запущенную через экран.Вот моя начальная команда
screen -L -c ./customrc -S psql -d -m /opt/PostgreSQL/9.0/bin/psql
Приведенная выше команда запустит интерактивный psql в режиме отсоединения экрана.Customrc используется для определения файла журнала для вывода (который я буду читать из другого процесса путем опроса)
Я использую следующие две команды для отправки ввода в psql, запущенный на экране
screen -S psql -X readreg p psqlcommands.sql
screen -S psql -X paste p
Проблема в том, что вышеприведенные команды не работают, если я не подключу экран хотя бы один раз.После того, как я прикрепил экран и отсоединился, вышеприведенные команды работают как положено.Я должен запустить эти команды через фоновый Java-процесс, поэтому интерактивная оболочка (bash) недоступна.Моя цель - запустить psql в интерактивном режиме, передать ему ввод и захватить его вывод через файл журнала.
До сих пор я пытался запустить экран через xterm (или konsole или gnome-терминал) в режиме подключения, используйте readreg / paste и затем отсоедините, но я понимаю, что xterm не будет доступен в моей производственной среде.Я также попытался отправить вывод в / proc // fd / 0, но я не могу эмулировать 'ENTER' с клавиатуры (мне нужно присоединить и нажать, чтобы вывод был принят psql).Я думаю, что pipe и fifo могут помочь, но я не могу понять, как с ними работать, используя screen и psql.
Я ценю любые дальнейшие подсказки или обходные пути.
Спасибо,
Усман.