我正在我的VPS上为我的队友主持一个游戏服务器,我试图为他制作一个网页,如果他想要的话就停止服务器。
我正在使用的是:
system('/bin/sh stopserver.sh');
这就是stopserver.sh里面的内容:
/usr/bin/screen -S server -X kill
但所有这些都给了我这样的信息:必须连接到终端。
有什么建议吗?
答案 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}}。)