watch_process.sh 3.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124
  1. #!/bin/bash
  2. wd_c=0
  3. start()
  4. {
  5. while [ 1 ]
  6. do
  7. HTTPD_STAT="`ps -e|grep speaker-cgi|grep -v grep`"
  8. if [ -z "${HTTPD_STAT}" ];then
  9. killall speaker-cgi > /dev/null 2>&1
  10. sleep 1
  11. /etc/scripts/httpd.sh start
  12. wd_c=`expr $wd_c + 1`
  13. fi
  14. APIAGENT_STAT="`ps|grep api_agent|grep -v grep`"
  15. if [ -z "${APIAGENT_STAT}" ];then
  16. /etc/scripts/api_agent &
  17. fi
  18. REDIS_STAT="`ps -e|grep 'redis-server'|grep -v grep`"
  19. if [ -z "${REDIS_STAT}" ];then
  20. /usr/sbin/redis-server /etc/redis.conf > /dev/null 2>&1 &
  21. wd_c=`expr $wd_c + 1`
  22. fi
  23. OUTPUTCTRL_STAT="`ps|grep output_control|grep -v grep`"
  24. if [ -z "${OUTPUTCTRL_STAT}" ];then
  25. /etc/scripts/output_control &
  26. fi
  27. PROCESS_STAT="`ps|grep service_process|grep -v grep`"
  28. if [ -z "${PROCESS_STAT}" ];then
  29. /etc/scripts/service_process &
  30. fi
  31. SIPPHONE_STAT="`ps -e|grep baresip|grep -v grep`"
  32. SIPSEV_STAT="`ps|grep 'bareservice'|grep -v grep`"
  33. if [ -z "${SIPPHONE_STAT}" -o -z "${SIPSEV_STAT}" ];then
  34. killall baresip > /dev/null 2>&1
  35. killall bareservice > /dev/null 2>&1
  36. # sleep 1
  37. /etc/scripts/sipphone.sh start
  38. wd_c=`expr $wd_c + 1`
  39. fi
  40. ONVIFSERVER_STAT="`ps|grep -w onvifserver|grep -v grep`"
  41. RTSPSERVER_STAT="`ps|grep -w rtspserver|grep -v grep`"
  42. if [ -z "${ONVIFSERVER_STAT}" -o -z "${RTSPSERVER_STAT}" ];then
  43. ONVIF_ENABLE="`sysconf /etc/speaker.conf get onvif enable`"
  44. if [ "foo${ONVIF_ENABLE}" = "fooyes" ];then
  45. /etc/scripts/shell_action.sh set_onvif
  46. fi
  47. fi
  48. ONVIF_STAT="`ps -e|grep 'onvif-discover'|grep -v grep`"
  49. if [ -z "${ONVIF_STAT}" ];then
  50. /etc/scripts/onvif-discover > /dev/null 2>&1 &
  51. fi
  52. SPEAKER_CONF_ERROR_STAT="`grep "\['" /oem/etc/speaker.conf`"
  53. if [ ! -z "${SPEAKER_CONF_ERROR_STAT}" ];then
  54. sed -i "s/\['//g" /oem/etc/speaker.conf
  55. sed -i "s/'\]//g" /oem/etc/speaker.conf
  56. sed -i "s/', '//g" /oem/etc/speaker.conf
  57. sync
  58. fi
  59. VOLUME_CONF_ERROR_STAT="`grep "\['" /oem/etc/volctrl.conf`"
  60. if [ ! -z "${VOLUME_CONF_ERROR_STAT}" ];then
  61. sed -i "s/\['//g" /oem/etc/volctrl.conf
  62. sed -i "s/'\]//g" /oem/etc/volctrl.conf
  63. sed -i "s/', '//g" /oem/etc/volctrl.conf
  64. sync
  65. fi
  66. [ $wd_c -gt 10 ] && /sbin/reboot
  67. sleep 15
  68. done
  69. }
  70. stop()
  71. {
  72. # stop sipphone
  73. /etc/scripts/sipphone.sh stop
  74. # stop ispeaker
  75. killall ispeaker > /dev/null 2>&1
  76. killall service_process > /dev/null 2>&1
  77. killall api_agent > /dev/null 2>&1
  78. killall ptpd2 > /dev/null 2>&1
  79. killall onvifserver > /dev/null 2>&1
  80. killall rtspserver > /dev/null 2>&1
  81. }
  82. restart()
  83. {
  84. stop
  85. sleep 2
  86. start&
  87. }
  88. reload()
  89. {
  90. stop
  91. sleep 2
  92. start&
  93. }
  94. case "$1" in
  95. start)
  96. start
  97. ;;
  98. stop)
  99. stop
  100. ;;
  101. restart|reload)
  102. restart
  103. ;;
  104. *)
  105. echo "Usage: $0 {start|stop|restart}"
  106. exit 1
  107. esac
  108. exit $?