參考鏈接
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. 啓動應用
./objs/srs -c conf/realtime.conf &
4.在srs/trunk目錄下新建reloadSrs.sh重啓腳本
#!/bin/bash
# 運行記錄日誌
runlog=/root/srs/trunk/reload.log
# 切換到腳本的工作目錄
cd /root/srs/trunk
# 首先以正常的方式(嘗試)結束掉srs服務的進程,靜默結束
pgrep srs |xargs kill -15 &>/dev/null
# 休息1秒,讓出1秒時間充分地停止進程
sleep 1
# 檢查一下srs有沒有被成功的結束,首先判斷一下執行kill -15以後是否殘留有srs服務的進程
processnum=$(pgrep srs |wc -l)
# 如果srs進程數量大於0,則自動讓腳本採用強制進程結束的方式快速終止srs進程;
if [[ "$processnum" -gt "0" ]];then
pgrep srs |xargs kill -9 &>/dev/null
# 發送wait指令,kill -9 一旦執行完畢腳本立刻執行接下來的操作
wait
fi
# 記錄停止服務的時間,時間格式的呈現:11/30/13 06:25:37
echo "$(date +"%D %T") service srs stoped" >>$runlog
# 執行你的啓動命令 ,靜默啓動
./objs/srs -c ./conf/realtime.conf &>/dev/null
# 休息1秒,讓出1秒時間充分地讓srs進程啓動完畢
sleep 1
# 統計啓動命令執行後srs進程的數量
processnum=$(pgrep srs |wc -l)
# 如果進程的數量大於0,記錄服務成功啓動;
if [[ "$processnum" -gt "0" ]];then
echo "$(date +"%D %T") service srs start sucess" >>$runlog
# 否則(進程數量等於0),記錄服務啓動失敗;
else
echo "$(date +"%D %T") service srs start fail" >>$runlog
fi
4.啓動定時執行重啓任務 crontab -e
30 9 * * * sh /root/srs/trunk/reloadSrs.sh &>/dev/null