dbeventWorker.sh 1.7 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182
  1. #!/bin/bash
  2. pidPath="../runtime/dbevent_worker.pid"
  3. phpbin="/alidata/server/php/bin/php"
  4. logFile="../runtime/dbevent_worker.log"
  5. cd /alidata/www/zhipuzi-test2/cysystem/scripts
  6. #dbevent worker
  7. stop() {
  8. if [ -f $pidPath ]; then
  9. pid=`cat $pidPath`
  10. echo "stop dbevent worker, pid="$pid"..."
  11. check_exist
  12. pidIsExits=$?
  13. if [ $pidIsExits -eq 1 ]; then
  14. kill $pid
  15. else
  16. echo "dbevent worker not exist."
  17. rm -f $pidPath
  18. fi
  19. try=0
  20. while test $try -lt 60; do
  21. if [ ! -f "$pidPath" ]; then
  22. try=''
  23. break
  24. fi
  25. echo -n
  26. try=`expr $try + 1`
  27. sleep 1
  28. done
  29. echo "stop dbevent worker ok."
  30. fi
  31. }
  32. #启动worker
  33. start() {
  34. check_exist
  35. pidIsExits=$?
  36. if [ $pidIsExits -eq 1 ]; then
  37. echo "dbevent worker had running..."
  38. else
  39. echo "start dbevent worker..."
  40. groupName=$1
  41. cmd=$phpbin" dbeventWorker.php -d -g"$groupName
  42. $cmd &> $logFile
  43. fi
  44. }
  45. #检测worker进程是否存在
  46. check_exist() {
  47. if [ ! -f $pidPath ]; then
  48. return 0
  49. fi
  50. pid=`cat $pidPath`
  51. pids=`ps aux | grep dbeventWorker.php | grep -v grep | awk '{print $2}'`
  52. pidIsExits=0;
  53. for i in ${pids[@]}
  54. do
  55. if [ "$i" -eq "$pid" ]; then
  56. pidIsExits=1
  57. break
  58. fi
  59. done
  60. return $pidIsExits
  61. }
  62. case "$1" in
  63. start)
  64. start $2
  65. ;;
  66. stop)
  67. stop
  68. ;;
  69. *)
  70. echo $"Usage: dbeventWorker.sh {start|stop|help}"
  71. exit 1
  72. esac