【问题标题】:Closing Opened Program Via PHP通过 PHP 关闭打开的程序
【发布时间】:2015-06-16 23:56:49
【问题描述】:

我试图找到一种方法来关闭我最近用 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");
}



        ?>

【问题讨论】:

    标签: php windows apache


    【解决方案1】:

    首先你不需要单独打开 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 调用它

    【讨论】:

    • 问题是程序一直在运行,直到我需要再次通过脚本关闭它。所以我不确定如何制作一个 bat 文件来关闭它。
    • 就是这样,我不知道该使用什么命令!我打算使用 PID 来执行此操作,但我没有办法记录每个进程的 pid。 (它会被多次启动)
    • 我严重怀疑在 PHP 中这样做。正如@DanyalSandeelo 提到的,使用实际上能够记录在shell 上执行的任何内容的脚本。您可以将内容保存到文件中,例如执行进程的PID,以便稍后杀死该进程。
    • 在 linux 中,我们有 ps -ef | grep PROCESS ,我 grep java 进程,如 ps -ef | grep java .. 这向我展示了 java 进程.. 那是什么服务?必须有某种方法可以关闭它..看看你是否能找到那种方法..你可能需要问另一个问题,比如询问如何通过命令行关闭该特定服务..
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-06-25
    • 1970-01-01
    相关资源
    最近更新 更多