使用php杀死GNU屏幕会话

时间:2011-10-07 14:10:52

标签: php linux session kill gnu-screen

我正在我的VPS上为我的队友主持一个游戏服务器,我试图为他制作一个网页,如果他想要的话就停止服务器。

我正在使用的是:

system('/bin/sh stopserver.sh');

这就是stopserver.sh里面的内容:

/usr/bin/screen -S server -X kill

但所有这些都给了我这样的信息:必须连接到终端。

有什么建议吗?

1 个答案:

答案 0 :(得分:0)

我认为这可能是您正在使用的屏幕版本中的一个错误,因为我拥有的屏幕4.00.03jw4 (FAU) 2-May-06没有展示它。如果可能的话,我建议升级。

如果您无法升级屏幕,则需要找出一些方法来为其提供终端。不幸的是,我不知道该怎么做。似乎在某些版本的PHP proc_open()中可能已经能够做到这一点,至少如果使用正确的选项编译PHP,apparently that feature has been removed

一个可能的远景可能是使用expect,如果它已安装在您的系统上。

编辑:或者只是按照tMC建议并使用posix_kill($pid, SIGTERM)。但是,您需要先找到会话的进程ID。 (您可能会为ps输出killall。或者如果您不担心附带损害,请使用{{3}}。)