搜索
查看: 5236|回复: 12

(非泛泛之谈)关于Linux以后台形式启动双HLDS进程的问题

[复制链接]
发表于 2004-6-18 02:17:54 | 显示全部楼层 |阅读模式 来自 中国–江苏–苏州–太仓市
我有一台内网的CS15服务器,系统是linux 9.0,如果跑一个口,完全可以通过rc.local实现开机自动启动

我曾经装过两个网卡(网卡驱动及IP地址都设置正确,网络畅通),在每一个HLDS上绑定一个网卡地址,并分别加&以后台方式运行(这些都是基本操作,我已经确认无数次),但是无论怎样设置,开机都无法自动装载这两个HLDS,有时设置会陷入死循环,我的问题是

第一:HLDS究竟是否支持后台方式,现在我两个HLDS都是靠前台方式运行起来的,(一个开机启动,另外一个HLDS通过其它服务器SSH登陆自动执行)
第二:怎样开机自动装载一个地址两个不同端口,或者是两个不同地址与相同端口的HLDS,网上关于Linux下建CS的服务器大多数都是抄袭的,真正写到点子上的非常少


附加问题:
我的webmod只能监测一个27015,27016无法监测到,两个HLDS执行目录是不在一起的


希望有能力的朋友予以解答
发表于 2004-6-18 21:32:56 | 显示全部楼层 来自 中国–河南–郑州
你的问题好奇怪,我也是菜鸟,知道的不多,但是我知道: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系统或者是配置没有做好,可以试试从新做一个系统看看。
回复

使用道具 举报

发表于 2005-6-25 09:08:24 | 显示全部楼层 来自 中国–陕西–西安
明白你的问题 其实你把写好的启动脚本 加入/etc/rc.d/rc.local里会实现自启动
回复

使用道具 举报

发表于 2005-6-25 11:24:02 | 显示全部楼层 来自 中国–福建–龙岩
请问,为何不这样做呢?
cp hlds_run hlds27015_run
cp hlds_run hlds27016_run
我想可能是系统,先识别进程名称了。哈哈。:D
回复

使用道具 举报

发表于 2005-6-25 12:20:32 | 显示全部楼层 来自 中国–广东–深圳
在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
就是说通过脚本启动脚本的形式来启动。不过这个方法我没测试过。你可以先测试一下吧。。。
回复

使用道具 举报

发表于 2005-6-25 15:27:21 | 显示全部楼层 来自 中国–江苏–无锡
看了你的问题

测试环境:

局域网

Redhat Enterprise Linux 4

CS 1.6 HLDS b3144

同一ip 不同端口 27016/27017

写入rc.local脚本

运行情况
可以自己启动两个HLDS ,连接正常

webmod没有测试,双网卡没有测试
回复

使用道具 举报

发表于 2005-6-25 16:05:54 | 显示全部楼层 来自 中国–北京–北京–大兴区
我怀疑你的教本可能写错,我在redhat9 经常开2个
回复

使用道具 举报

发表于 2005-6-26 01:49:47 | 显示全部楼层 来自 中国–广东–深圳
不过楼主的这个脚本有没有问题,还需要他自己去做的,
楼主的问题解决了没????????
你的脚本文件中的脚本绝对路径是否正确呢?以下是我自己的脚本文件,一个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脚本文件。
我想是没有什么问题的,
我只是把我自己的思路告诉你而已。
回复

使用道具 举报

发表于 2005-6-26 20:40:40 | 显示全部楼层 来自 中国–福建–厦门
我记得以前我用linux的时候,我都是把他放在服务里面的...回头我把具体的做法放上来,因为hlds其实会调用另外一个进程来启动服务,在shutdown的时候要把哪个进程号取到来kill掉...赶着开会...
回复

使用道具 举报

发表于 2005-7-8 22:49:35 | 显示全部楼层 来自 中国–广东–深圳
刚装时,我在起动时起动上也碰到了这个问题,很来也是像windgao一样的方法解决了
回复

使用道具 举报

游客
回复
您需要登录后才可以回帖 登录 | 注个册吧

快速回复 返回顶部 返回列表