2012-06-24 104 views
2

如何將命令發送到使用PHP的後臺進程?發送命令到後臺進程?

我開始過程是這樣的:

exec('start /D "samp-server.exe"'); 

我殺了這樣的流程:

exec('TASKKILL /F /IM "samp-server.exe"'); 

而我檢查,如果該進程正在運行,如下所示:

exec('tasklist /FI "IMAGENAME eq samp-server.exe"'); 

但是我怎麼能發送一個命令,例如從這個後臺進程「退出」到控制檯。

如果您鴕鳥政策瞭解薩-MP服務器控制檯:

http://www.abload.de/image.php?img=firstd0lc9.png

http://www.abload.de/image.php?img=thenf3guh.png

回答

0

使用proc__open http://www.php.net/manual/en/function.proc-open.php因爲這應該給你你需要的控制。手冊頁中的示例。

+0

嗯。但是這些例子很糟糕。 proc_open,打開一個進程?對?我需要發送命令到正在運行的進程。 ... –

+0

您基本上使用proc_open運行該命令,並獲取該進程的句柄。使用這個而不是exec。使用這個句柄,你可以發送命令,就好像它們來自標準輸入一樣,也就是說,如果你在應用程序上鍵入命令,如「退出」或「退出」等。 – Robbie

+0

嗯但我會發送服務器在後臺...我無法用proc_open打開進程併發送命令!我會將它發送給背景,如果我需要,我會在稍後打開過程(通過PID)。我無法啓動這個過程兩次......或者你的意思是? –