【问题标题】:Send Command to Background Process?向后台进程发送命令?
【发布时间】:2012-06-26 00:09:32
【问题描述】:

如何使用 PHP 向后台进程发送命令?

我这样启动流程:

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

我这样终止进程:

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

然后我检查进程是否正在运行,如下所示:

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

但是我怎样才能从这个后台进程向控制台发送命令,例如“退出”。

如果您不了解 Sa-MP 服务器控制台:

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

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

【问题讨论】:

    标签: php windows process background exec


    【解决方案1】:

    使用 proc__open http://www.php.net/manual/en/function.proc-open.php 因为这应该可以为您提供所需的控制。手册页中的示例。

    【讨论】:

    • 嗯。但是这些例子很糟糕。 proc_open,打开一个进程?正确的?我需要向正在运行的进程发送命令。 ...
    • 您基本上使用 proc_open 运行命令,并获得进程的句柄。使用它而不是 exec。使用此句柄,您可以发送命令,就好像它们来自标准输入一样,即好像您在应用程序上键入命令一样,例如“退出”或“退出”等。
    • hmm 但是我会在后台发送服务器...我无法使用 proc_open 打开进程并发送命令!如果需要,我会将其发送到后台并稍后打开进程(通过 PID)。我无法启动进程两次......或者你的意思是什么?
    • 你是说你在一个 php 脚本中打开进程,然后他们尝试在另一个 php 脚本中发送命令。在这种情况下,它不会起作用(也不确定会发生什么)。您仍然需要以某种方式掌握该过程
    猜你喜欢
    • 2011-08-25
    • 1970-01-01
    • 2012-07-16
    • 1970-01-01
    • 2016-11-06
    • 1970-01-01
    • 1970-01-01
    • 2012-05-16
    相关资源
    最近更新 更多