(非泛泛之谈)关于Linux以后台形式启动双HLDS进程的问题
我有一台内网的CS15服务器,系统是linux 9.0,如果跑一个口,完全可以通过rc.local实现开机自动启动我曾经装过两个网卡(网卡驱动及IP地址都设置正确,网络畅通),在每一个HLDS上绑定一个网卡地址,并分别加&以后台方式运行(这些都是基本操作,我已经确认无数次),但是无论怎样设置,开机都无法自动装载这两个HLDS,有时设置会陷入死循环,我的问题是
第一:HLDS究竟是否支持后台方式,现在我两个HLDS都是靠前台方式运行起来的,(一个开机启动,另外一个HLDS通过其它服务器SSH登陆自动执行)
第二:怎样开机自动装载一个地址两个不同端口,或者是两个不同地址与相同端口的HLDS,网上关于Linux下建CS的服务器大多数都是抄袭的,真正写到点子上的非常少
附加问题:
我的webmod只能监测一个27015,27016无法监测到,两个HLDS执行目录是不在一起的
希望有能力的朋友予以解答 你的问题好奇怪,我也是菜鸟,知道的不多,但是我知道:1,HLDS绝对支持后台运行,不需要通过第三方启动的。2,不知道你的HLDS启动方式是怎么配置的,是否指定不同的端口?比如我的是:(27016) ./hlds_run -game cstrike -port 27016 -insecure +sv_lan 1 +maxplayers 24 +map de_dust2 -nomaster &
(27017) ./hlds_run -game cstrike -port 27017 -insecure +sv_lan 1 +maxplayers 24 +map de_dust2 -nomaster &
如果你跟我的基本上一样的话,我怀疑是你的linux系统或者是配置没有做好,可以试试从新做一个系统看看。 明白你的问题 其实你把写好的启动脚本 加入/etc/rc.d/rc.local里会实现自启动 请问,为何不这样做呢?
cp hlds_run hlds27015_run
cp hlds_run hlds27016_run
我想可能是系统,先识别进程名称了。哈哈。:D 在UNIX系统中做的几个高人都在这里了。你不也是高人吗 ?呵呵。
即使有文章我想可能也是你自己写的吧。呵呵。不过你的问题我还没碰到过。另外你的这个问题,其实核心问题就是你有2个网卡,也就是说你也有2个IP。那么你在你的启动脚本中是否指定27015或者是27016服务器使用末一个IP呢?
如果说你同时把两个脚本增加到RC。CONF中。那么
他只能识别其中一个脚本,所以说你的问题就是必须在启动脚本中增加IP
完整的代码我不知道怎么写,但是我只能给你乱写一个演示的脚本。
例如:
./hlds_run -game cstrike IP 192.168.1.16 -port 27016 -insecure +sv_lan 1 +maxplayers 24 +map de_dust2 -nomaster &
二。
./hlds_run -game cstrike IP 192.168.1.15 -port 27015 -insecure +sv_lan 1 +maxplayers 24 +map de_dust2 -nomaster &
最后你在你的rc.conf 中增加看下效果怎么样。。。。。。
其实你这个问题在WIN下面也会碰到的。不过这个碰到问题的也要看条件的饿,
一般来说很少同一台电脑使用2个固定IP的。
到时候问题解决了。要请我喝饮料啊。兄弟
:byebye:
如果说你已经是使用我以上的方法了,问题还没解决,
那么我就在教你一招
从新写一个脚本。脚本内容为
./game-run_one
./game_run_two
就是说通过脚本启动脚本的形式来启动。不过这个方法我没测试过。你可以先测试一下吧。。。 看了你的问题
测试环境:
局域网
Redhat Enterprise Linux 4
CS 1.6 HLDS b3144
同一ip 不同端口 27016/27017
写入rc.local脚本
运行情况
可以自己启动两个HLDS ,连接正常
webmod没有测试,双网卡没有测试 我怀疑你的教本可能写错,我在redhat9 经常开2个 不过楼主的这个脚本有没有问题,还需要他自己去做的,
楼主的问题解决了没????????
你的脚本文件中的脚本绝对路径是否正确呢?以下是我自己的脚本文件,一个Intel 10/100网卡,
这是我的CS1.5启动脚本,这个是32人SERVER脚本,文件绝对路径在:/root/hlds_l/
#/bin/bash/
export /root/hlds_l
cd /root/hlds_l
/root/hlds_l/hlds_run -game cstrike -port 27015 -insecure +sv_lan 1 +maxplayers 32 +map de_aztec -nomaster &
这个是我的VS脚本。战队服务器,绝对路径:/root/hlds_vs
#/bin/bash/
export /root/hlds_vs
cd /root/hlds_vs
/root/hlds_vs/hlds_run -game cstrike -port 27017 -insecure +sv_lan 1 +maxplayers 24 +map de_aztec -nomaster &
这个是我的CS1.6SERVER32人混战服务器脚本,绝对路径:/root/hlds_l_1.6
#/bin/bash/
cd /root/hlds_l_1.6/
export /root/hlds_l_1.6/
# until false
# do
nice -20 ./hlds_run -game cstrike +port 27016 -nomaster +sv_lan 1 +maxplayers 24 +map de_dust2 &
请查看相关脚本资料了。。。。。。。。。。。。。。。。。。。
楼主的脚本为何不按照以下的方式去测试一下呢 ?
假设你的网卡IP一为192.168.0.15
网卡IP二为192.168.0.16
使用网卡一的启动脚本:
#/bin/bash/
export /root/hlds_l
cd /root/hlds_l
/root/hlds_l/hlds_run -game cstrike +ip 192.168.0.15 -port 27015 -insecure +sv_lan 1 +maxplayers 32 +map de_aztec -nomaster &
使用网卡二的启动脚本:
#/bin/bash/
export /root/hlds_l
cd /root/hlds_l
/root/hlds_l/hlds_run -game cstrike +ip 192.168.0.16 -port 27016 -insecure +sv_lan 1 +maxplayers 32 +map de_aztec -nomaster &
然而你认为还有什么不正确的地方根据自己的实际情况来修改。
另外你也可以使用脚本的形式编辑启动脚本文件例如你的CS文件一个是在/root/hlds_l中
另外一个在/root/hlds_vs中
其中/root/hlds_l 使用网卡IP一
另外一个/root/hlds_vs使用网卡IP二
在任意一个文件中建立一个脚本
例如在/root 根目录中建立一综合启动脚本,例如脚本名为rc_cs_start.sh
脚本内容为:
#/bin/bash/
export /root/hlds_l
cd /root/hlds_l
/root/hlds_l/start_cs.sh;cd /root/hlds_vs/;/root/hlds_vs/start_cs.sh
如果需要设置权限请在(;)符号后面添加 chmod 777 * 或者是chmod 777 /root/hlds_l/*
请大家在编辑脚本的过程中一定要注意格式了,
我没写过脚本,可能存在错误的问题,请根据自己的系统情况来编辑,以上的脚本只是一个例子,我是按照BSD的格式来编写的,只是给大家做一个参考。具体的编辑脚本请到网上查找相关的资料对照修改。
其中start_cs.sh 为CS的启动脚本。
当脚本编辑完毕之后在你的rc.conf 中增加rc_cs_start.sh脚本文件。
我想是没有什么问题的,
我只是把我自己的思路告诉你而已。 我记得以前我用linux的时候,我都是把他放在服务里面的...回头我把具体的做法放上来,因为hlds其实会调用另外一个进程来启动服务,在shutdown的时候要把哪个进程号取到来kill掉...赶着开会... 刚装时,我在起动时起动上也碰到了这个问题,很来也是像windgao一样的方法解决了
页:
[1]
2