求生之路吧 关注:553,551贴子:7,462,617
  • 17回复贴,共1

srcds服务器看门狗Java程序

只看楼主收藏回复

楼主开了个求生之路2的服务器,放了一些三方图,平时自己玩玩或匹配路人玩,但是发现这个服有时候会闪退,尤其是打三方图的时候,有些三方图不知道是什么问题,一旦所有人都退出了服务器,这个服就会报错,然后自动闪退。之后要玩的时候才发现服宕机了,只能再手动连上远程服务器,再重新手动启动求生之路2服务器。
最近工作不是很忙,于是想着能不能自己开发一套检测游戏服务器运行状态的小程序,于是就有了现在这个帖子。
本程序使用Java编写,使用Spring Boot框架,好处就在于Java程序能在全平台运行,一次开发,到处运行。求生之路2服务器就支持2个端,Windows和Linux,因此只要装了Java就能使用这个小程序。
没什么技术含量,主要的原理就是检测指定UDP端口是否存活,30秒检测一次,如果发现端口不存活,就认为服务器已经闪退了,然后会自动根据给定的启动命令重启服务器,就是这么个简单的逻辑。
理论上valve的所有srcds server都能使用这个,前提是这些服务器都是使用UDP协议的,求生之路2服务器、csgo服务器、半条命服务器 理论上 都能使用。
楼主已在Windows服务器上试了求生之路2服务器能完美运行,Linux上没部署过求生服务器,所以虽然理论上可以,但实际我没试过,所以不一定能用,各位Linux腐竹如想折腾可以试试。
资源链接:
链接:网页链接
提取码:14ta
使用方法:
解压后,共有4个文件,
jar文件为主程序文件,
start.sh文件为Linux启动文件,
start.bat为Windows启动文件,
application.yml文件为程序配置文件,
配置文件其中:
ports参数为您要监控的服务器端口,如只开一个节点则只输入一个端口即可,如开多个节点则输入多个端口(注意使用英文逗号分割,不是中文逗号)
path参数为您的服务器绝对路径,注意必须以/结尾
command参数为您的服务器启动命令

配置完成后,运行start.sh或start.bat即可启动。


IP属地:上海来自Android客户端1楼2022-11-07 23:32回复
    配置Java:
    1、首先确认您的服务器有没有安装Java,打开您服务器的终端,输入java -version,如果返回类似于command not found(命令未找到)的,则说明没安装或者装了但没配环境变量。
    JDK8及以上版本都行。
    如果没安装的话,去下载,建议下载azul zulu发行的OpenJDK,当然你要用Oracle的JDK也没问题。
    Azul Zulu OpenJDK:
    网页链接
    进页面后往下滑就是各版本JDK的下载了,注意对应操作系统和CPU架构别下错了,x86的是32位系统用的,x86_64(或叫AMD64)是64位系统用的,ARM是专门给ARM架构CPU的系统用的。


    IP属地:上海来自Android客户端2楼2022-11-07 23:33
    回复
      2025-12-25 07:31:07
      广告
      不感兴趣
      开通SVIP免广告
      下载JDK17,Linux系统最好下tar.gz格式的,Windows最好下zip格式的。下载后自己手动解压,手动配环境变量。
      要是问为什么不用JDK8,而要用17这么高的版本?因为现在都在往JDK17迁移,JDK17将是下一个主流的版本。而且现在最新的Minecraft 1.19版游戏和服务器都最低要求JDK17,否则就跑不起来。


      IP属地:上海来自Android客户端3楼2022-11-07 23:34
      回复
        2、配置Java环境变量
        下载后解压,解压到哪个位置随便你,但是一旦配好了环境变量,你再移动解压后的文件夹就不礼貌了,如果移了的话,再去环境变量里修改成新路径。
        1) Windows系统配置Java环境变量:
        假设你解压后的文件夹放在C:\Program Files\Java\zulu17xxx
        则打开系统设置 -> 系统 -> 关于 -> 高级系统设置 -> 环境变量 -> “系统变量”新建名为“JAVA_HOME”,值为jdk文件夹的路径,确定后,找到“系统变量”中名为“Path”的,点击“编辑”,新增一条值为“%JAVA_HOME%\bin”确定,环境变量即配置完成,再次打开终端,输入java -version即可看到输出。








        IP属地:上海来自Android客户端4楼2022-11-07 23:35
        回复
          2) Linux系统配置Java环境变量:
          打开终端,cd到您的用户目录,即cd ~
          输入ls -al,查看是否有名为“.profile”的文件
          有则编辑此文件,具体使用nano还是vim还是vi还是图形化文本编辑器随便,注意不要把里面的其他的内容修改了,在最后一行后回车,输入
          # Java Path
          export JAVA_HOME=您解压后的Java文件夹路径(注意是 里面有bin、conf、include、……文件夹的那一层)
          export PATH=$PATH:$JAVA_HOME/bin
          保存并退出文件,随后source .profile重编译此文件或直接reboot或init 6重启系统。随后在终端中输入java -version即可看到输出。


          IP属地:上海来自Android客户端5楼2022-11-07 23:35
          回复
            楼主平时要上班,所以没什么时间维护这个,但以后可能会出有网页端管理的功能


            IP属地:上海来自Android客户端6楼2022-11-07 23:37
            回复
              分享几个前人写的srcds服务器监控 自动定时重启类



              IP属地:安徽7楼2023-03-18 21:59
              收起回复
                嘿,楼主,我又带来了新发现。
                1.求生可以用这个
                2.对于本机开服,我最先打算是使用ipv6,这个人人都有。但问题还是需要转v4,因为这个老游戏不支持v6直连,mc就可以。而且需要知道特定地址。陌生人没法进。放弃了。后来我用了内网渗透成功了,延迟在100多,高了。我买的这个渗透服务不能指定端口范围27015以上,所以陌生人搜不到。我估计换一个平台的就行了。我用的是路由器下的另一个电脑开的,左边是局域网的服,右边是广域网的服。我发现一个bug,表面上右边是27015,但实际不是,从这里进会卡住,只能直连然后输入真正的转发端口号。


                IP属地:安徽10楼2023-03-27 23:28
                回复