2010-10-05 2 views
0

У меня есть приложение для Java-сервера, которое при его запуске вы можете взаимодействовать с ним, отправляя команды через stdin. Я хочу написать веб-интерфейс, который может отправлять эти команды ему.отправлять команды на заданные задания stdin

Для этого мне нужно каким-то образом получить команды от php до stdin для этой фоновой работы. Есть ли способ сделать это с консоли? или, возможно, написать какую-то оболочку, которая управляет работой сервера и может получить доступ к ее stdin? это можно сделать в python?

+0

Просьба предоставить более подробную информацию о сервере приложений. Какие команды вы хотите отправить? С чем вы хотите взаимодействовать? – Gordon

ответ

0

Вы можете подключить свой stdin к FIFO, а затем еще один демон подключиться к FIFO и отправить команды. Возможно, было бы лучше, если бы демона управления запустила демона Java, так что демон Java не выключается, если по какой-то причине демона управления.

0

Вы можете использовать питон subprocess module:

Пример вызова внешней команды оболочки:

from subprocess import call 

try: 
    retcode = call("mycmd" + " myarg", shell=True) 
    if retcode < 0: 
     print >>sys.stderr, "Child was terminated by signal", -retcode 
    else: 
     print >>sys.stderr, "Child returned", retcode 
except OSError, e: 
    print >>sys.stderr, "Execution failed:", e 
0

вы можете использовать командную строку, что-то вроде этого

wrapper.php (используя кавычку)

$cmd = `php /path/to/background_script.php &`; 
echo $cmd; 

background_script.php

echo "Hello world in 5 seconds\n"; 
sleep(5); 
echo "Hello again\n"; 
Смежные вопросы