通过PHP关闭已打开的程序

时间:2015-04-11 07:42:23

标签: php windows apache

我试图找到一种方法来关闭我最近用PHP打开的程序。启动和停止服务器系统的一部分(使用.bat在java中生成的服务器)。我只能在后台打开它,是的,我启用了与桌面的交互。我想知道是否有一种方法可以返回我首先启动的程序进程的PID,然后使用该pid稍后关闭程序。

用于启动的PHP页面代码

<?php 
        session_start();
        $id = $_GET['serverid'];

                $mysqli = new mysqli("localhost", "root", "", "mainrspshosts");

/* check connection */
if ($mysqli->connect_errno) {
    printf("Connect failed: %s\n", $mysqli->connect_error);
    exit();
}
$query = "SELECT * FROM servers WHERE id = '" .$id. "' LIMIT 1";

if ($result = $mysqli->query($query)) {

    /* fetch associative array */
    while ($row = $result->fetch_assoc()) {
        if($_SESSION["username"]==$row["owner"]){


set_time_limit(300);


    echo "Starting...<br><br>";
$output = shell_exec('c:\WINDOWS\system32\cmd.exe /c START run474.bat');
    echo($output);
    echo "Success!";
        header("refresh:5;url=http://rspshost.zapto.org/ucp/serverstartedvalidation.php");











        }
        else{

        header("location:index.php");
        
        }
    }
}
else{

        header("location:index.php");
}



        ?>

1 个答案:

答案 0 :(得分:0)

首先,您不需要单独打开cmd.exe,shell_exec意味着在控制台上运行命令,因为您可能正在通过此命令运行cmd

 c:\WINDOWS\system32\cmd.exe /

所以你可以把它写成

 shell_exec("start /filepath/fileName.bat");

就你的问题而言,php shell_exec只是执行传递给它的命令,它不知道命令的含义。由于每个应用程序的关闭机制,您通过shell_exec运行将是不同的,因此您需要通过传递另一个停止或终止进程的命令通过shell_exec关闭它。在您的情况下,创建一个

 closing-run474.bat file

并通过shell_exec

调用它