【CS2】Linux服务器端自动更新 ——一种基于screen发送命令窗口的简单方法 管理员命令 通用内容 服务器管理

Hejin 赞助用户组 1月前 218

在安装完成服务器端的情况下

一.安装如下插件

用于检测服务器端API发现有更新自动关闭服务器

【CS2插件】CS2AutoUpdater ——CS2服务器自动更新检测插件-CS2专区-CSGO插件分享-CSGO资料库

二.安装Screen

#Ubuntu/Debian
apt install screen -y
#centos
yum install screen -y

三.写一个脚本用于自动更新

例autorestart.sh{记得下边改内容}

#!/bin/bash

# 定义screen会话名称
SESSION_NAME="cs2"
COMMAND="cd /服务器安装目录/game/bin/linuxsteamrt64 && ./start.sh"  # 要运行的命令
CHECK_COMMAND="./cs2"
CHECK_INTERVAL=300  # 检查间隔(秒)

while true; do
    # 检查是否有 "./cs2" 在运行
    if ! pgrep -f "$CHECK_COMMAND" > /dev/null; then
        echo "$(date): 没有 '$CHECK_COMMAND' 程序正在运行. 正在SCREEN的 '${SESSION_NAME}' 里开始重启指令..."

        # 检查screen会话是否存在
        if screen -list | grep -q "\.${SESSION_NAME}"; then
            echo "$(date): Screen 窗口 '${SESSION_NAME}' 存在. 正在发送命令到窗口..."
            # 在现有的screen会话中发送命令
            screen -S "${SESSION_NAME}" -X stuff "${COMMAND}$(echo -ne '\r')"
        else
            echo "$(date): Screen 窗口 '${SESSION_NAME}' 不存在. 正在创建新窗口..."
            # 创建新的screen会话并运行命令
            screen -dmS "${SESSION_NAME}" bash -c "${COMMAND}; exec bash"
        fi
    else
        echo "$(date): 程序 'CHECK_COMMAND' 已经在运行了."
    fi

    # 等待指定的时间间隔
    sleep "$CHECK_INTERVAL"
done

四.写一个脚本用于快捷启动服务器端

例start.sh{记得下边改安装目录}

#!/bin/bash

cd && ./steamcmd.sh +force_install_dir /安装目录/ +login anonymous +app_update 730 +quit #自动更新
cd /安装目录/game/bin/linuxsteamrt64 && ./cs2 -dedicated -usercon -console -condebug +sv_log_onefile 1 +sv_logfile 1 -serverlogging +game_type 0 +game_mode 1 +mapgroup mg_active +map de_mirage +port 27015 +maxplayers_override 10 +sv_setsteamaccount XXXXXXXXXXXXXXXXXXXXXXXXXXXX
#启动服务器

如果你是纯小白,就按着我上边的来,把start.sh和autorestart.sh都放在/服务器安装目录/game/bin/linuxsteamrt64下边

最后分别用两个Screen窗口持久化运行

例:

screen -R auto

#进入 /服务器端安装目录/game/bin/linuxsteamrt64 后

chmod +x autorestart.sh #第一次启动给权限
chmod +x start.sh #第一次启动给权限
./autorestart.sh

#成功运行后按住Crtl + A + D 挂起窗口

screen -R cs2

#此时应该正常运行启动服务器了,有问题可以自行测试,比如在此时启动./start.sh查看启动是否成功
#有可能遇到的错误问题,1)重复创建screen窗口,2)安装目录有误,3)脚本修改的有误,其他待补充


CSGO插件分享-申明 1、本网站名称:CSGO插件分享-中文站  网址:https://bbs.csgocn.net
2、本站的宗旨在于为CSGO玩家提供一个插件分享的中文资源平台,多数插件来源于SourceMod论坛,并配以中文介绍和安装教程。
3、欢迎有能力的朋友共享有趣的CSGO插件资源。
4、本站资源大多为百度网盘,如发现链接失效,可以点: 这里进行反馈,我们会第一时间更新。
最新回复 (1)
返回