Перенаправление команд
unknownns 13 февраля, 2010 - 22:32
Не могу никак понять каким образом можно перенаправить команду с одного терминала на другой, ну т.е. ввод. Что-то пробовал - не выходит. Нет не вывод одной команды на другой терминал, а заставить например нажать "Enter" и чтоб результат нажатия был на другом терминале, как буд-то я в данный момент за другим нахожусь и там нажал ентер. Т.е. с практический стороны, есть скажем какая-нить прога плеер например, она запущена на терминале к примеру с номером 5. Я работаю за 10-м терминалом, как мне из 10-го управлять плеером, понятное, еслиб он был демоном - вопрос решён, а если обычный процесс, который управляется на запущенной консоли функциональными клавишами.
»
- Для комментирования войдите или зарегистрируйтесь
.
http://upload.wikimedia.org/wikipedia/commons/7/70/Stdstreams-notitle.svg
ИМХО вам потребовалось бы писать в stdin для того player-а, а сможете ли вы это сделать - я не знаю, не пробовал.
Это подпись, которую невозможно истолковать неправильно
В том-то и дело, что как
В том-то и дело, что как нулевой поток перенаправить проге понятно просто, если ты находишься за данным терминалом, вопрос в том - как влезть в нулевой поток чужого терминала?(зная его номер, то биш файл устройства и т.п.)
в /proc//fd/ все открытые
в /proc/<номер процесса>/fd/ все открытые файловые дескрипторы для данного процесса. 0, 1 и 2 из которых это stdin, stdout и stderr соответственно.
хотя у меня не получается сделать то, что вы хотите
.
Прикольно. Есть yakuake, в нём две закладки. В неактивной запущен cat, в активной выполнена команда cd /proc/2870/fd
так вот, я делаю echo 123 > 0, переключаюсь в закладку с cat и вижу 123. Работает!
Это подпись, которую невозможно истолковать неправильно
да, но попробуйте открыть
да, но попробуйте открыть скажем nano и сделать
echo '123' > /proc/.../fd/0
123 отобразится на экране, но если сохранить файл, то 123 в нем не сохранится.
Всё равно не выходит,
Всё равно не выходит, получается лишь вывести на экран какой-то символ. Подозреваю, что надо использовать escape-последовательности, должно быть существует, которая сообщит именно о нажатии клавиши. Т.к. на очистку экрана, передвижения курсора и т.п. точно есть - а вот по обычным нажатиям клавиш найти инфу что-то не могу.