我有一个java服务器应用程序,当它运行时,你可以通过stdin与它交互发送命令。我想写一个可以发送这些命令的Web界面。
为了做到这一点,我需要一些方法从php获取命令到stdin这个后台工作。有没有办法从控制台做到这一点?或者可能写一些控制服务器作业并可以访问其标准输入的包装器?这可以在python中完成吗?
答案 0 :(得分:0)
您可以将其stdin连接到FIFO,然后让另一个守护进程连接到FIFO并发送命令。尽管让控制守护进程启动Java守护进程可能会更好,这样如果控制守护程序由于某种原因而无法关闭,那么Java守护进程就不会关闭。
答案 1 :(得分:0)
您可以使用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
答案 2 :(得分: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";