shell_exec没有给出任何结果,也没有做任何事情

问题描述 投票:2回答:1

所以我有一个问题,在我脑海里看起来应该很容易解决。我想ssh到服务器,我做了很多次,然后做一个shell执行,我已经做了很多次,但它没有工作。

我正在使用的代码

<?php
            $ip = '1.2.3.4';
            $cmd = "ssh user@".$ip;
            $result = shell_exec($cmd." 'sudo /bin/systemctl stop wildfly.service'");
            echo "<pre>output: $result</pre>";
            echo "<div class='alert alert-success'><strong>SUCCESS</strong><br>Wildfly node has now restarted</div>"; 
?>

直接从终端运行命令

ssh user@1.2.3.4 sudo /bin/systemctl stop wildfly.service

它工作,但在PHP中运行它什么都没给我,它没有做任何事情。

有人可以指导我做我的shell_exec错误吗?

提前致谢!

php shell-exec
1个回答
0
投票
function execPrint($command) {
    try {
        $result = array();
        exec($command.' 2>&1', $result);
        foreach ($result as $line) {
            print($line .  "\n");
        }
        echo '------------------------' . "\n" . "\n";
    } catch (\Exception $e) {
        print($e);
    }
    http_response_code(200);
}

我做了这个功能来获得结果

  1. 在最后一个CMD中添加2>&1
  2. 每行使用print
  3. 使用trycatch来捕捉任何错误
最新问题
© www.soinside.com 2019 - 2025. All rights reserved.