我有一個java服務器應用程序,當它運行時,你可以通過stdin發送命令與它交互。我想編寫一個可以將這些命令發送給它的Web界面。發送命令到後臺作業stdin
爲了做到這一點,我需要一些從php獲取命令的方式來執行此後臺作業的標準輸入。有沒有辦法從控制檯做到這一點?或者可能編寫一些控制服務器作業並可以訪問其標準輸入的封裝器?這可以在python中完成嗎?
我有一個java服務器應用程序,當它運行時,你可以通過stdin發送命令與它交互。我想編寫一個可以將這些命令發送給它的Web界面。發送命令到後臺作業stdin
爲了做到這一點,我需要一些從php獲取命令的方式來執行此後臺作業的標準輸入。有沒有辦法從控制檯做到這一點?或者可能編寫一些控制服務器作業並可以訪問其標準輸入的封裝器?這可以在python中完成嗎?
您可以將其stdin連接到FIFO,然後讓另一個守護進程也連接到FIFO併發送命令。儘管讓控制守護進程啓動Java守護進程可能會更好,但是如果控制守護進程出於某種原因,Java守護進程不會關閉。
您可以使用Python subprocess module:
調用外部shell命令的例子:
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
,你可以使用命令行,像這樣
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";
請提供有關應用程序服務器的更多信息。你想發送什麼樣的命令?你想與什麼接口? – Gordon 2010-10-05 09:24:33