watch_process.sh 8.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196
  1. #!/bin/bash
  2. wd_c=0
  3. free_c=0
  4. time_wait_c=0
  5. start()
  6. {
  7. while [ 1 ]
  8. do
  9. HTTPD_STAT="`ps|grep speaker-cgi|grep -v grep`"
  10. if [ -z "${HTTPD_STAT}" ];then
  11. killall speaker-cgi > /dev/null 2>&1
  12. sleep 1
  13. /etc/scripts/httpd.sh start
  14. wd_c=`expr $wd_c + 1`
  15. fi
  16. APIAGENT_STAT="`ps|grep api_agent|grep -v grep`"
  17. if [ -z "${APIAGENT_STAT}" ];then
  18. /etc/scripts/api_agent &
  19. fi
  20. AICTRL_STAT="`ps|grep serial_ctrl|grep -v grep`"
  21. if [ -z "${AICTRL_STAT}" ];then
  22. HWVer="`sysconf /etc/speaker.conf get system hard_version`"
  23. if [ ${HWVer:3:1} -ge 3 ];then
  24. /etc/scripts/shell_action.sh ai start
  25. fi
  26. fi
  27. REDIS_STAT="`ps|grep 'redis-server'|grep -v grep`"
  28. if [ -z "${REDIS_STAT}" ];then
  29. /usr/sbin/redis-server /etc/redis.conf > /dev/null 2>&1 &
  30. wd_c=`expr $wd_c + 1`
  31. fi
  32. OUTPUTCTRL_STAT="`ps|grep output_control|grep -v grep`"
  33. if [ -z "${OUTPUTCTRL_STAT}" ];then
  34. /etc/scripts/output_control &
  35. fi
  36. PROCESS_STAT="`ps|grep service_process|grep -v grep`"
  37. if [ -z "${PROCESS_STAT}" ];then
  38. /etc/scripts/service_process &
  39. fi
  40. ISPEAKER_STAT="`ps|grep -w "python3 /app/ispeaker-service/ispeaker" |grep -v grep`"
  41. if [ -z "${ISPEAKER_STAT}" ];then
  42. ISPEAKER_ENABLE="`sysconf /etc/speaker.conf get system broadcast_service`"
  43. SIP_ENABLE="`sysconf /etc/speaker.conf get account_info_1 enable`"
  44. MULTICAST_ENABLE="`sysconf /etc/speaker.conf get multicast_player enable`"
  45. if [ "foo${ISPEAKER_ENABLE}" = "fooyes" -a "foo${SIP_ENABLE}" = "fooyes" ] || [ "foo${MULTICAST_ENABLE}" = "fooyes" ];then
  46. if [ "foo${ISPEAKER_ENABLE}" = "fooyes" -a "foo${SIP_ENABLE}" = "fooyes" ];then
  47. killall ptpd2 > /dev/null 2>&1
  48. /etc/scripts/shell_action.sh startSyncTimeToIPAC
  49. else
  50. killall ptpd2 > /dev/null 2>&1
  51. fi
  52. killall ispeaker > /dev/null 2>&1
  53. # sleep 1
  54. /etc/scripts/ispeaker start
  55. wd_c=`expr $wd_c + 1`
  56. fi
  57. fi
  58. WAIT_STAT=$(netstat -apn | grep 1883 | awk '{print $6}' | tr -d ' ')
  59. if ! echo "$WAIT_STAT" | grep -q "ESTABLISHED" && echo "$WAIT_STAT" | grep -Eq "TIME_WAIT|CLOSE_WAIT|SYN_SENT|FIN_WAIT1"; then
  60. time_wait_c=`expr $time_wait_c + 1`
  61. if [ $time_wait_c -gt 3 ];then
  62. ISPEAKER_ENABLE="`sysconf /etc/speaker.conf get system broadcast_service`"
  63. SIP_ENABLE="`sysconf /etc/speaker.conf get account_info_1 enable`"
  64. if [ "foo${ISPEAKER_ENABLE}" = "fooyes" -a "foo${SIP_ENABLE}" = "fooyes" ];then
  65. killall ispeaker > /dev/null 2>&1
  66. sleep 1
  67. /etc/scripts/ispeaker start
  68. sleep 3
  69. time_wait_c=0
  70. fi
  71. fi
  72. else
  73. time_wait_c=0
  74. fi
  75. PTP_STAT="`ps|grep -w ptpd2|grep -v grep`"
  76. if [ -z "${PTP_STAT}" ];then
  77. PTP_ENABLE="`sysconf /etc/speaker.conf get ptp enable`"
  78. if [ "foo${PTP_ENABLE}" = "fooyes" ];then
  79. ISPEAKER_ENABLE="`sysconf /etc/speaker.conf get system broadcast_service`"
  80. SIP_ENABLE="`sysconf /etc/speaker.conf get account_info_1 enable`"
  81. if [ "foo${ISPEAKER_ENABLE}" = "foono" -o "foo${SIP_ENABLE}" = "foono" ];then
  82. killall ptpd2 > /dev/null 2>&1
  83. /etc/scripts/shell_action.sh startSyncTimeToPtpServer
  84. fi
  85. else
  86. ISPEAKER_ENABLE="`sysconf /etc/speaker.conf get system broadcast_service`"
  87. SIP_ENABLE="`sysconf /etc/speaker.conf get account_info_1 enable`"
  88. if [ "foo${ISPEAKER_ENABLE}" = "fooyes" -a "foo${SIP_ENABLE}" = "fooyes" ];then
  89. killall ptpd2 > /dev/null 2>&1
  90. /etc/scripts/shell_action.sh startSyncTimeToIPAC
  91. fi
  92. fi
  93. fi
  94. ONVIFSERVER_STAT="`ps|grep -w onvifserver|grep -v grep`"
  95. RTSPSERVER_STAT="`ps|grep -w rtspserver|grep -v grep`"
  96. if [ -z "${ONVIFSERVER_STAT}" -o -z "${RTSPSERVER_STAT}" ];then
  97. ONVIF_ENABLE="`sysconf /etc/speaker.conf get onvif enable`"
  98. if [ "foo${ONVIF_ENABLE}" = "fooyes" ];then
  99. /etc/scripts/shell_action.sh set_onvif
  100. fi
  101. fi
  102. SIPPHONE_STAT="`ps|grep baresip|grep -v grep`"
  103. SIPSEV_STAT="`ps|grep 'bareservice'|grep -v grep`"
  104. if [ -z "${SIPPHONE_STAT}" -o -z "${SIPSEV_STAT}" ];then
  105. killall baresip > /dev/null 2>&1
  106. killall bareservice > /dev/null 2>&1
  107. # sleep 1
  108. /etc/scripts/sipphone.sh start
  109. wd_c=`expr $wd_c + 1`
  110. fi
  111. ONVIF_STAT="`ps|grep 'onvif-discover'|grep -v grep`"
  112. if [ -z "${ONVIF_STAT}" ];then
  113. /etc/scripts/onvif-discover > /dev/null 2>&1 &
  114. fi
  115. EQ_STAT="`ps|grep 'eq_drc_process'|grep -v grep`"
  116. if [ -z "${EQ_STAT}" ];then
  117. /usr/bin/eq_drc_process > /dev/null 2>&1 &
  118. fi
  119. SPEAKER_CONF_ERROR_STAT="`grep "\['" /oem/etc/speaker.conf`"
  120. if [ ! -z "${SPEAKER_CONF_ERROR_STAT}" ];then
  121. sed -i "s/\['//g" /oem/etc/speaker.conf
  122. sed -i "s/'\]//g" /oem/etc/speaker.conf
  123. sed -i "s/', '//g" /oem/etc/speaker.conf
  124. sync
  125. fi
  126. VOLUME_CONF_ERROR_STAT="`grep "\['" /oem/etc/volctrl.conf`"
  127. if [ ! -z "${VOLUME_CONF_ERROR_STAT}" ];then
  128. sed -i "s/\['//g" /oem/etc/volctrl.conf
  129. sed -i "s/'\]//g" /oem/etc/volctrl.conf
  130. sed -i "s/', '//g" /oem/etc/volctrl.conf
  131. sync
  132. fi
  133. [ $wd_c -gt 10 ] && /sbin/reboot
  134. sleep 15
  135. done
  136. }
  137. stop()
  138. {
  139. # stop sipphone
  140. /etc/scripts/sipphone.sh stop
  141. # stop ispeaker
  142. killall ispeaker > /dev/null 2>&1
  143. killall service_process > /dev/null 2>&1
  144. killall api_agent > /dev/null 2>&1
  145. killall ptpd2 > /dev/null 2>&1
  146. killall onvifserver > /dev/null 2>&1
  147. killall rtspserver > /dev/null 2>&1
  148. }
  149. restart()
  150. {
  151. stop
  152. sleep 2
  153. start&
  154. }
  155. reload()
  156. {
  157. stop
  158. sleep 2
  159. start&
  160. }
  161. case "$1" in
  162. start)
  163. start
  164. ;;
  165. stop)
  166. stop
  167. ;;
  168. restart|reload)
  169. restart
  170. ;;
  171. *)
  172. echo "Usage: $0 {start|stop|restart}"
  173. exit 1
  174. esac
  175. exit $?