process.sh 954 B

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556
  1. #!/usr/bin/env sh
  2. set -e
  3. process_status()
  4. {
  5. pids=`ps aux|grep '$*'|grep -v entrypoint|grep -v grep|awk '{print $*}'`
  6. if [ "$pids" ]; then
  7. echo $pids
  8. else
  9. echo 1
  10. fi
  11. }
  12. process_start()
  13. {
  14. status=`process_status $*`
  15. if [ "$status" == 1 ]; then
  16. echo "$* starting"
  17. $@ >/dev/null &
  18. echo "$* started"
  19. else
  20. echo "$* started"
  21. fi
  22. }
  23. process_stop()
  24. {
  25. status=`process_status $*`
  26. if [ "$status" == 1 ]; then
  27. echo "$* stoped"
  28. else
  29. echo "stoping $*"
  30. for pid in $status
  31. do
  32. kill -TERM ${pid} >/dev/null 2>&1
  33. done
  34. echo "$* stoped"
  35. fi
  36. }
  37. process_restart()
  38. {
  39. process_stop $*
  40. sleep 5
  41. p=`process_command`
  42. echo `$p`
  43. }
  44. process_monit()
  45. {
  46. status=`process_status $*`
  47. if [ "$status" == 1 ]; then
  48. p=`process_command`
  49. echo `$p`
  50. fi
  51. }
  52. process_command()
  53. {
  54. p=$(cat /process)
  55. echo $p
  56. }