用了几年srs,优秀 优秀 优秀的很 视频服务,简单易用,关键纯国产免费还有一堆的技术人员开发改进。
1. srs的简单介绍:
是一个简单高效的实时视频服务器,支持RTMP/WebRTC/HLS/HTTP-FLV/SRT。
2. 最近遇到点问题,偶尔srs 会异常退出,其实我已经用几年了最近才出现重启问题,我们需要实时24小时提供服务,可能不能掉链子。
作者 杨老大 提供了 WiKi:
https://github.com/ossrs/srs/wiki/v3_CN_LinuxService
3. 开始我没找到作者提供的LinuxService, 我们搞了个简单crontab,简单能用,分享下给大家。
4. 运行环境:
操作系统: Ubuntu 16.04.2 LTS
srs 版本: srs-3.0-r2
安装目录:/etc/srs/srs-3.0-r2
5. 在/etc/srs 目录下新建 srsmonitor.sh, 复制下面的脚本,记得按自己的安装目录改下
proc_name 的变量,里面是你的需要查找的srs 进程名字,不能简单的输入 srs,因为我们可能我们正好在 tail -f srs.log ,自己也可以测试下 ps -ef | grep "objs/srs" 验证下。
然后修改srs的启动命令,记得先用cd 到你的根目录,然后再启动。
#! /bin/sh
host_dir=`echo ~`
proc_name="objs/srs"
file_name="/etc/srs/srsmonitor.log"
pid=0
proc_num()
{
num=`ps -ef | grep $proc_name | grep -v grep | wc -l`
return $num
}
proc_id()
{
pid=`ps -ef | grep $proc_name | grep -v grep | awk '{print $2}'`
}
proc_num
number=$?
echo "start" >> $file_name
echo $number, `date` >> $file_name
if [ $number -eq 0 ]
then
cd /etc/srs/srs-3.0-r2/trunk && ./objs/srs -c ./conf/srs.conf
proc_id
echo "restart" >> $file_name
echo ${pid}, `date` >> $file_name
fi
弄好了文件,接下来自己在命令行下运行下 sh srsmonitor.sh 看看效果,分别在srs运行的时候和没运行的时候执行测试下,是否能自动把 srs启动起来,如果成功了 就下一步。
6. 添加定时任务
crontab -e
*/1 * * * * sh /etc/srs/srsmonitor.sh
直接复制过去,意思是1分钟执行一次 srsmonitor.sh,如果你的目录不同记得改下目录。
7. 可以看下执行日志 tail -f /etc/srs/srsmonitor.log
8. 再有问题,翻阅 srs 的WiKi吧。