1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586 |
- #!/bin/bash
- #
- # pm2 Process manager for NodeJS
- #
- # chkconfig: 345 80 20
- #
- # description: PM2 next gen process manager for Node.js
- # processname: pm2
- #
- ### BEGIN INIT INFO
- # Provides: pm2
- # Required-Start: $local_fs $remote_fs
- # Required-Stop: $local_fs $remote_fs
- # Should-Start: $network
- # Should-Stop: $network
- # Default-Start: 2 3 4 5
- # Default-Stop: 0 1 6
- # Short-Description: PM2 init script
- # Description: PM2 is the next gen process manager for Node.js
- ### END INIT INFO
- NAME=pm2
- PM2=%PM2_PATH%
- USER=%USER%
- export PATH=%NODE_PATH%:$PATH
- export PM2_HOME="%HOME_PATH%"
- lockfile="/var/lock/subsys/pm2-init.sh"
- super() {
- su - $USER -c "PATH=$PATH; PM2_HOME=$PM2_HOME $*"
- }
- start() {
- echo "Starting $NAME"
- super $PM2 resurrect
- retval=$?
- [ $retval -eq 0 ] && touch $lockfile
- }
- stop() {
- echo "Stopping $NAME"
- super $PM2 kill
- rm -f $lockfile
- }
- restart() {
- echo "Restarting $NAME"
- stop
- start
- }
- reload() {
- echo "Reloading $NAME"
- super $PM2 reload all
- }
- status() {
- echo "Status for $NAME:"
- super $PM2 list
- RETVAL=$?
- }
- case "$1" in
- start)
- start
- ;;
- stop)
- stop
- ;;
- status)
- status
- ;;
- restart)
- restart
- ;;
- reload)
- reload
- ;;
- *)
- echo "Usage: {start|stop|status|restart|reload}"
- exit 1
- ;;
- esac
- exit $RETVAL
|