一般来说,FreeSWITCH 不需要任何命令行参数就可以启动,但在某些情况下,你需要以一些特殊的参数启动。在此,仅作简单介绍。如果你知道是什么意思,那么你就可以使用,如果不知道,多半你用不到。
使用 freeswitch -help 或 freeswitch --help 会显示以下信息:
-nf -- no forking -u [user] -- 启动后以非 root 用户 user 身份运行 -g [group] -- 启动后以非 root 组 group 身份运行 -help -- 显示本帮助信息 -version -- 显示版本信息 -waste -- 允许浪费内存,FreeSWITCH 仅需 240K 的栈空间 你可以使用 ulimit -s 240 限制栈空间使用,或使用该选择忽略警告信息 -core -- 出错时进行内核转储 -hp -- 以高优先级运行 -vg -- 在 valgrind 下运行,调试内存泄露时使用 -nosql -- 不使用 SQL,show channels 类的命令将不能显示结果 -heavy-timer -- 更精确的时钟。可能会更精确,但对系统要求更高 -nonat -- 如果路由器支持 uPnP 或 NAT-PMP,则 FreeSWITCH 可以自动解决 NAT 穿越问题。如果路由器不支持,则该选项可以使启动更快 -nocal -- 关闭时钟核准。FreeSWTICH 理想的运行环境是 1000 Hz 的内核时钟 如果你的内核时钟小于 1000 Hz 或在虚拟机上,可以尝试关闭该选项 -nort -- 关闭实时时钟 -stop -- 关闭 FreeSWTICH,它会在 run 目录中查找 PID文件 -nc -- 启动到后台模式,没有控制台 -c -- 启动到控制台,默认 -conf [confdir] -- 指定其它的配置文件所在目录,须与 -log、 -db 合用 -log [logdir] -- 指定其它的日志目录 -run [rundir] -- 指定其它存放 PID 文件的运行目录 -db [dbdir] -- 指定其它数据库目录 -mod [moddir] -- 指定其它模块目录 -htdocs [htdocsdir] -- 指定其它 HTTP 根目录 -scripts [scriptsdir] -- 指定其它脚本目录 复制代码
系统启动脚本
在学习调试阶段,你可以启动到前台,而系统真正运行时,你可以使用 -nc 参数启动到后台,然后通过查看 log/freeswitch.log 跟踪系统运行情况(你可以用 tail -f 命令实时跟踪,我一般使用 less)。
一般情况下,启动到前台更容易调试,但你又不想在每次关闭 Terminal 时停止 FreeSWITCH,那么,你可以借助 screen 来实现。
在真正的生产系统上,你需要它能跟系统一起启动。在 nix 系统上,启动脚本一般放在 /etc/init.d/。你可以在系统源代码目录下找到不同系统启动脚本 debian/freeswitch.init 及 build/freeswitch.init.,参考使用。在 Windows 上,你也可以注册为 Windows 服务。