gpt4 book ai didi

linux - 在现有 screen 中创建新的 'screen'

转载 作者:太空宇宙 更新时间:2023-11-04 12:08:45 27 4
gpt4 key购买 nike

我有一个游戏服务器。它通过 dotnet 在 linux 上运行。我在“screen ” session 中运行它。但是我正在努力重新启动此服务器。从外面看,很容易。我只是通过名称杀死现有 screen 并创建新 screen 。但是,当我想从内部重新启动服务器时(现有游戏进程启动运行脚本的新进程,杀死命名 screen 并启动新进程)

具体来说:

停止.sh:

screen -r gameserver -X quit

start.sh:

screen -L -A -m -d -S gameserver /usr/bin/dotnet /gameserver/game.dll

重启.sh:

/gameserver/stop.sh
/gameserver/start.sh

现在,如果我从 screen 内部以编程方式运行 restart.sh,它会调用 stop.sh,这会终止当前 screen 以及此 restart.sh 脚本,因此新 screen 不会启动。

我尝试通过 screen 运行 restart.sh:

screen -L -m -d /bin/bash -c /gameserver/restart.sh

但是还是不行...我希望这会在新 screen 中运行 restart.sh,其中“游戏服务器” screen 将终止并启动新 screen ,然后在该 screen 运行 restart.sh 后停止。但是没有:(

有什么想法吗?

最佳答案

你不能在 screen 内杀死这个进程吗?有点像

screen -r gameserver kill $(ps aux|grep 'game.dll'|awk '{print $2}') ?

关于linux - 在现有 screen 中创建新的 'screen',我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49720292/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com