pm2-init-amazon.sh 1.4 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586
  1. #!/bin/bash
  2. #
  3. # pm2 Process manager for NodeJS
  4. #
  5. # chkconfig: 345 80 20
  6. #
  7. # description: PM2 next gen process manager for Node.js
  8. # processname: pm2
  9. #
  10. ### BEGIN INIT INFO
  11. # Provides: pm2
  12. # Required-Start: $local_fs $remote_fs
  13. # Required-Stop: $local_fs $remote_fs
  14. # Should-Start: $network
  15. # Should-Stop: $network
  16. # Default-Start: 2 3 4 5
  17. # Default-Stop: 0 1 6
  18. # Short-Description: PM2 init script
  19. # Description: PM2 is the next gen process manager for Node.js
  20. ### END INIT INFO
  21. NAME=pm2
  22. PM2=%PM2_PATH%
  23. USER=%USER%
  24. export PATH=%NODE_PATH%:$PATH
  25. export PM2_HOME="%HOME_PATH%"
  26. lockfile="/var/lock/subsys/pm2-init.sh"
  27. super() {
  28. su - $USER -c "PATH=$PATH; PM2_HOME=$PM2_HOME $*"
  29. }
  30. start() {
  31. echo "Starting $NAME"
  32. super $PM2 resurrect
  33. retval=$?
  34. [ $retval -eq 0 ] && touch $lockfile
  35. }
  36. stop() {
  37. echo "Stopping $NAME"
  38. super $PM2 kill
  39. rm -f $lockfile
  40. }
  41. restart() {
  42. echo "Restarting $NAME"
  43. stop
  44. start
  45. }
  46. reload() {
  47. echo "Reloading $NAME"
  48. super $PM2 reload all
  49. }
  50. status() {
  51. echo "Status for $NAME:"
  52. super $PM2 list
  53. RETVAL=$?
  54. }
  55. case "$1" in
  56. start)
  57. start
  58. ;;
  59. stop)
  60. stop
  61. ;;
  62. status)
  63. status
  64. ;;
  65. restart)
  66. restart
  67. ;;
  68. reload)
  69. reload
  70. ;;
  71. *)
  72. echo "Usage: {start|stop|status|restart|reload}"
  73. exit 1
  74. ;;
  75. esac
  76. exit $RETVAL