У меня есть приложение, которое выполняется как процесс на сервере ubuntu. Это приложение имеет командную строку gui, которая позволяет мне вводить команду, затем нажмите enter и команда запускается. Я могу списать определение идентификатора процесса. Я тогда сценарий следующий послать ему команду:отправка команды для обработки с использованием/proc
# echo "command" > /proc/<PROCESSID>/fd/0
я попытался вариации
# echo "command" > /proc/<PROCESSID>/fd/0
# echo -e "command\r" > /proc/<PROCESSID>/fd/0
# echo -e "command\c" > /proc/<PROCESSID>/fd/0
# echo -e "\015" > /proc/<PROCESSID>/fd/0
Я знаю, программа получает команду, но не выполняет его. Я подозреваю, что это потому, что я физически не нажимаю кнопку ввода, и, возможно, в командной строке это ожидает. Может ли кто-нибудь посоветовать мне, как я использую этот неправильный или лучший вариант?
«Командная строка GUI»? Или «интерфейс командной строки»? Если вы управляете процессом по-православному, что вы набираете на клавиатуре? Или вам нужно что-то делать с помощью мыши? Откуда вы знаете, что процесс получает команду? –
Пользовательский интерфейс командной строки, я думаю, лучше всего описать его, нет взаимодействия с мышью. Обычно я запускаю программу через ssh и появляется текстовая командная строка. В этом интерфейсе я могу вводить команды, и они выполняются. Если я открою второй отдельный ssh-интерфейс, я могу ввести echo «command»>/proc//fd/0 после определения идентификатора процесса и он появляется в исходном интерфейсе ssh, но не выполняется. –
RandyMorris
Связанные вопрос: [Inject Keystroke к другому процессу с помощью Bash] (http://stackoverflow.com/a/11199135/929437) – aland