屏幕肯定在运行时没有找到屏幕会话

时间:2014-10-30 05:51:31

标签: php linux bash

天儿真好,

我有一个运行游戏服务器的独立屏幕,我正在使用bash脚本 command.sh 将命令发送到分离的屏幕。

在终端中,我可以使用以下命令,服务器成功执行命令:

./command.sh 'any command'

但是,一旦我使用PHP来调用脚本:

    <?PHP
        if($_POST) {
            $commandString = $_POST['inputCommand'];
            $output = shell_exec('./command.sh $commandString');
            echo "<pre>$output</pre>";
            }
    ?>

屏幕返回错误:

No screen session found.

我尝试将bash脚本的权限更改为777,并尝试将其放在Web根目录中。

有没有人知道为什么php无法运行脚本但是我可以在终端中运行脚本?


其他请求信息

command.sh

 #!/bin/bash
 screen -S "minecraft" -X stuff "$@"$'\015'

1 个答案:

答案 0 :(得分:1)

好像你正试图从另一个用户(默认为www-data)启动来自Web服务器的php脚本。

要将某些文本发送到屏幕,您必须以屏幕所有者身份运行该命令,因为/ var / run / screen / S-user /

中有700个屏幕权限

请尝试更改字符串:

sudo -u owner_of_the_screen ./command.sh $commandString