我有一个问题,我有一个 Garry's Mod 服务器,我用以下命令启动它:
./gmodserver start
在用户修改服务器
我正在尝试编写一个脚本,可以使用 php 页面执行该脚本来重启我的 gmod 服务器。该脚本:
screen -dmS test
screen -S test -X stuff 'sudo su - gmodserver\n'
screen -S test -X stuff 'sleep 1\n'
screen -S test -X stuff 'echo "Rebooting ..."\n'
screen -S test -X stuff 'sleep 1\n'
screen -S test -X stuff 'killall -s 9 srcds_linux srcds_run\n'
screen -S test -X stuff './../../../../home/gmodserver/gmodserver start \n'
screen -S test -X stuff 'sleep 5\n'
screen -S test -X stuff 'exit\n'
screen -S test -X stuff 'exit\n'
当我从终端执行此脚本时,没有任何问题,我的 tmux 会话已顺利创建./gmodserver start
。并且服务器重新启动。在这里,如果我执行,tmux ls
我会看到:
gmodserver: 1 windows (created Thu Jul 18 18:39:08 2019) [80x22]
所以这里一切都很好。但是当我使用 php 执行脚本时,使用:
shell_exec('./restart.sh');
服务器顺利重启,但如果我tmux ls
看不到我的 gmodserver 会话,那么我就无法附加它,所以我无法做我想做的事情。
笔记:
- Apache 正在 www-data 用户上运行
- 我没有通过 www-data 和 gmodserver 的 sudo 进行操作
- ./gmodserver start,不是我的脚本,而是 LinuxGSM 脚本
- 在 7.2 中运行的 PHP
我希望你能帮助我,抱歉我的英语不好,我是法国人,再见:)