UNPKG

1.42 kBapplication/x-shView Raw
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
22NAME=pm2
23PM2=%PM2_PATH%
24USER=%USER%
25
26export PATH=%NODE_PATH%:$PATH
27export PM2_HOME="%HOME_PATH%"
28
29lockfile="/var/lock/subsys/pm2-init.sh"
30
31super() {
32 su - $USER -c "PATH=$PATH; PM2_HOME=$PM2_HOME $*"
33}
34
35start() {
36 echo "Starting $NAME"
37 super $PM2 resurrect
38 retval=$?
39 [ $retval -eq 0 ] && touch $lockfile
40}
41
42stop() {
43 echo "Stopping $NAME"
44 super $PM2 kill
45 rm -f $lockfile
46}
47
48restart() {
49 echo "Restarting $NAME"
50 stop
51 start
52}
53
54reload() {
55 echo "Reloading $NAME"
56 super $PM2 reload all
57}
58
59status() {
60 echo "Status for $NAME:"
61 super $PM2 list
62 RETVAL=$?
63}
64
65case "$1" in
66 start)
67 start
68 ;;
69 stop)
70 stop
71 ;;
72 status)
73 status
74 ;;
75 restart)
76 restart
77 ;;
78 reload)
79 reload
80 ;;
81 *)
82 echo "Usage: {start|stop|status|restart|reload}"
83 exit 1
84 ;;
85esac
86exit $RETVAL