23.2.3 Helix Server的运行与停止
Helix服务器完成,默认情况下就可以运行了。它的运行方式与其他Linux下的服务器不同,不提供运行脚本,需要直接执行命令文件,并以后台方式运行。当停止时,需要用kill命令终止进程。下面是Helix服务器的运行方法。
# /usr/helix_server/Bin/rmserver /usr/helix_server/rmserver.cfg &
//“&”表示以后台方式运行进程
[1] 12278 //进程号为12278
Server Started: 26-Dec-08 09:06:29
Helix Server (c) 1995-2008 RealNetworks, Inc. All rights reserved.
Version: Helix Server (Tahiti) (12.0.1.215) (Build 175002/12667)
Platform: linux-rhel5-i686
Using Config File: /usr/helix_server/rmserver.cfg //配置文件的位置与名称
Linux kernel version 2.6.18-8.el5 detected
Starting PID 12279 TID 3086006544, procnum 0 (controller)
Creating Server Space...
Server has allocated 256 megabytes of memory //使用256MB内存
Starting TID 3084909440, procnum 1 (timer)
…
Testing AtomicOps...(114.70 ops/usec)
I: Loading Plugins from /usr/helix_server/Plugins...
//装入各种插件,下面是插件的名称
I: slicensepln.so 0xf38f50 RealNetworks Licensing Plugin
…
I: redbcplin.so 0x89b380 RealNetworks Broadcast Redundancy Plugin
Starting TID 3080715136, procnum 3 (rmplug)
…
Starting TID 3047160704, procnum 19 (streamer)
#
当以上命令执行时,Helix服务器默认使用256MB内存,如果想分配更多的内存给Helix服务器,可以在执行rmserver命令时加“-m <n>”选项。其中,n为字节数,单位为MB。还有,当命令执行时,也可以指定其他的文件做为Helix服务器的配置文件。Helix服务器运行后,可以使用下面的命令查看进程的情况。
# ps -eaf|grep rmserver
root 12278 12129 009:06pts/1 00:00:00 /usr/helix_server/Bin/rmserver /usr/helix_server/rmserver.cfg
root 12279 12278 009:06? 00:00:01 /usr/helix_server/Bin/rmserver /usr/helix_server/rmserver.cfg
root 12280 12278 009:06? 00:00:00 /usr/helix_server/Bin/rmserver /usr/helix_server/rmserver.cfg
root 12314 12129 009:11 pts/1 00:00:00 grep rmserver
#
可以看到,默认情况下,Helix服务器运行了3个进程,都以root用户的身份运行,其中进程号为12278的进程是另外两个进程的父进程。实际上,可以对配置文件进行修改,以其他用户身份运行两个子进程,以增加系统的安全性。
%说明:Helix服务器进程运行后,默认情况下会在安装目录的Logs子目录中产生进程PID文件。
为了使Helix服务器能为网络中的远程机提供服务,如果主机启用了防火墙,需要开放相应的端口。Helix服务器监听的网络端口较多,其中554端口是RTSP协议的默认端口,1755端口是MMS协议的默认端口。另外,Helix服务器还兼有Web服务器的功能,用户在安装时已经指定了监听HTTP连接的端口和管理页面端口。在防火墙设置中,这些端口如果有需要,都应该要开放。可以通过以下命令查看所有Helix服务器使用的端口。
[root@localhost html]# netstat -anp|grep rmserver
tcp 0 0 :::9090 :::* LISTEN 12492/rmserver
tcp 0 0 :::7077 :::* LISTEN 12492/rmserver
tcp 0 0 :::8008 :::* LISTEN 12492/rmserver
tcp 0 0 :::808 :::* LISTEN 12492/rmserver
tcp 0 0 :::554 :::* LISTEN 12492/rmserver
tcp 0 0 :::21944 :::* LISTEN 12492/rmserver
tcp 0 0 :::1755 :::* LISTEN 12492/rmserver
udp 0 0 0.0.0.0:32775 0.0.0.0:* 12492/rmserver
udp 0 0 0.0.0.0:9875 0.0.0.0:* 12492/rmserver
udp 0 0 0.0.0.0:1755 0.0.0.0:* 12492/rmserver
另外,Helix服务器的流数据是通过UDP协议发送的,默认情况下,它们所使用的UDP端口是随机的,此时,客户端的回复数据包也需要通过同样的端口进来,因此,需要开放大量的UDP端口,这对安全是不利的。可以限定Helix服务器使用的UDP端口范围,但在客户端连接较多的时候,会影响性能。
%注意:为了解决这个问题,Helix服务器提供了一种配置功能,它可以让客户端的回复数据包限定在一定的UDP端口范围内,此时,在防火墙上只需要开放这个范围的端口即可。具体方法见23.3.2小节。
Helix服务器没有提供终止进程的脚本,需要用户使用kill命令手工终止进程。此时可以根据前面ps命令列出的进程ID终止进程,也可以根据进程PID文件里的进程号进行终止,具体命令如下:
# kill `cat /usr/helix_server/rmserver.pid`
%注意:“`”是倒引号,而不是单引号。另外,在Helix服务器管理界面中,还提供了服务器重启的功能。