Songsong 发表于 2004-6-18 02:17:54

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

我有一台内网的CS15服务器,系统是linux 9.0,如果跑一个口,完全可以通过rc.local实现开机自动启动

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

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


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


希望有能力的朋友予以解答

Quick 发表于 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系统或者是配置没有做好,可以试试从新做一个系统看看。

isaccyaya 发表于 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

windgao 发表于 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
就是说通过脚本启动脚本的形式来启动。不过这个方法我没测试过。你可以先测试一下吧。。。

windows2003 发表于 2005-6-25 15:27:21

看了你的问题

测试环境:

局域网

Redhat Enterprise Linux 4

CS 1.6 HLDS b3144

同一ip 不同端口 27016/27017

写入rc.local脚本

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

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

frank 发表于 2005-6-25 16:05:54

我怀疑你的教本可能写错,我在redhat9 经常开2个

windgao 发表于 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脚本文件。
我想是没有什么问题的,
我只是把我自己的思路告诉你而已。

larnk 发表于 2005-6-26 20:40:40

我记得以前我用linux的时候,我都是把他放在服务里面的...回头我把具体的做法放上来,因为hlds其实会调用另外一个进程来启动服务,在shutdown的时候要把哪个进程号取到来kill掉...赶着开会...

imsong 发表于 2005-7-8 22:49:35

刚装时,我在起动时起动上也碰到了这个问题,很来也是像windgao一样的方法解决了
页: [1] 2
查看完整版本: (非泛泛之谈)关于Linux以后台形式启动双HLDS进程的问题