參考鏈接
https://github.com/ossrs/srs/wiki/v1_CN_SampleRTMP
1.獲取srs
git clone https://github.com/ossrs/srs
2.編譯SRS
cd srs/trunk
./configure && make
3. 啟動(dòng)應(yīng)用
./objs/srs -c conf/realtime.conf &
4.在srs/trunk目錄下新建reloadSrs.sh重啟腳本
#!/bin/bash
# 運(yùn)行記錄日志
runlog=/root/srs/trunk/reload.log
# 切換到腳本的工作目錄
cd /root/srs/trunk
# 首先以正常的方式(嘗試)結(jié)束掉srs服務(wù)的進(jìn)程燎斩,靜默結(jié)束
pgrep srs |xargs kill -15 &>/dev/null
# 休息1秒本鸣,讓出1秒時(shí)間充分地停止進(jìn)程
sleep 1
# 檢查一下srs有沒有被成功的結(jié)束,首先判斷一下執(zhí)行kill -15以后是否殘留有srs服務(wù)的進(jìn)程
processnum=$(pgrep srs |wc -l)
# 如果srs進(jìn)程數(shù)量大于0间涵,則自動(dòng)讓腳本采用強(qiáng)制進(jìn)程結(jié)束的方式快速終止srs進(jìn)程;
if [[ "$processnum" -gt "0" ]];then
pgrep srs |xargs kill -9 &>/dev/null
# 發(fā)送wait指令灼擂,kill -9 一旦執(zhí)行完畢腳本立刻執(zhí)行接下來的操作
wait
fi
# 記錄停止服務(wù)的時(shí)間菊值,時(shí)間格式的呈現(xiàn):11/30/13 06:25:37
echo "$(date +"%D %T") service srs stoped" >>$runlog
# 執(zhí)行你的啟動(dòng)命令 ,靜默啟動(dòng)
./objs/srs -c ./conf/realtime.conf &>/dev/null
# 休息1秒屠凶,讓出1秒時(shí)間充分地讓srs進(jìn)程啟動(dòng)完畢
sleep 1
# 統(tǒng)計(jì)啟動(dòng)命令執(zhí)行后srs進(jìn)程的數(shù)量
processnum=$(pgrep srs |wc -l)
# 如果進(jìn)程的數(shù)量大于0,記錄服務(wù)成功啟動(dòng)肆资;
if [[ "$processnum" -gt "0" ]];then
echo "$(date +"%D %T") service srs start sucess" >>$runlog
# 否則(進(jìn)程數(shù)量等于0)阅畴,記錄服務(wù)啟動(dòng)失敗迅耘;
else
echo "$(date +"%D %T") service srs start fail" >>$runlog
fi
4.啟動(dòng)定時(shí)執(zhí)行重啟任務(wù) crontab -e
30 9 * * * sh /root/srs/trunk/reloadSrs.sh &>/dev/null