Ubuntu Pastebin

Paste from leeyaa at Mon, 8 Jun 2015 08:18:04 +0000

Download as text
 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
#!/bin/bash

if [ `whoami` != "nobody" ]; then
   su nobody -c "$0 $1 $2"
   exit
fi

APP_DIR="/usr/local"
NODE_APP="$APP_DIR/node/cluster.js"
CONFIG_FILE="$APP_DIR/Config/node.json"
PID_FILE="/tmp/node.pid"
NODE_EXEC=$(which node)
NODE_USER="nobody"
USAGE="Usage: $0 {start|stop|restart|status}"
DNAME="node"

is_node_listening() {
   [[ -f "$PID_FILE" ]] || return 1;
   local pid=$(cat "$PID_FILE")
   lsof -i | grep -q $pid
}

wait_for_node_to_start_listening() {
   for i in 0 1 2 3 4 5; do
      if ! is_node_listening; then
         sleep $i
      else
         echo "Running"
         return 0
      fi
   done

   echo "Failed starting Node app - node process is not listening on any ports, check logs"
   exit 1
}

start_node() {
   start-stop-daemon --start --background --no-close --exec $NODE_EXEC --user $NODE_USER --name $DNAME --pidfile $PID_FILE --make-pidfile --startas $NODE_EXEC --chuid $NODE_USER -- $NODE_APP $CONFIG_FILE
   wait_for_node_to_start_listening

}

stop_node() {
   start-stop-daemon --stop --user $NODE_USER --name $DNAME --pidfile $PID_FILE --retry 5 && echo "Stopped"
}

case "$1" in
   start)

      start_node
      ;;

   stop)
      stop_node
      ;;

   restart)
      stop_node && \
      start_node
      ;;

   *)
      echo $USAGE
      exit 1
      ;;
esac
Download as text