在安装完成服务器端的情况下
一.安装如下插件
用于检测服务器端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)脚本修改的有误,其他待补充