run.sh 2.4 KB
Newer Older
E
eoLinker API Management 已提交
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16

#!/bin/bash
### BEGIN INIT INFO
#
# Provides:	 location_server
# Required-Start:	$local_fs  $remote_fs
# Required-Stop:	$local_fs  $remote_fs
# Default-Start: 	2 3 4 5
# Default-Stop: 	0 1 6
# Short-Description:	initscript
# Description: 	This file should be used to construct scripts to be placed in /etc/init.d.
#
### END INIT INFO
 
## Fill in name of program here.
cd  $(dirname $0) # 当前位置跳到脚本位置
Y
Your Name 已提交
17
PROG="node"
E
eoLinker API Management 已提交
18 19 20 21 22 23 24 25 26 27
PROG_PATH="$(pwd)" ## Not need, but sometimes helpful (if $PROG resides in /opt for example).

WORK_PATH="$PROG_PATH/work"

start() {
    if [[ -e "$WORK_PATH/$PROG.env" ]]; then
        source $WORK_PATH/$PROG.env
    fi

    ADMIN=$1
Y
Your Name 已提交
28
    INSTANCE=$2
Y
Your Name 已提交
29 30 31 32
    CONFIG_PATH=$WORK_PATH/goku-node.json
    RUN_MODEL="console"
    if [ -f "$CONFIG_PATH" ]; then
	RUN_MODEL="config"  
E
eoLinker API Management 已提交
33
    fi
Y
Your Name 已提交
34

E
eoLinker API Management 已提交
35 36 37
    if [[ "$ADMIN" = "" ]] ; then
        ADMIN=${ENV_ADMIN}
    fi
Y
Your Name 已提交
38 39 40 41
    
    if [[ "$INSTANCE" = "" ]]; then
	INSTANCE = ${ENV_INSTANCE}
    fi
E
eoLinker API Management 已提交
42

Y
Your Name 已提交
43
    if [[ "$ADMIN" == "" && "$RUN_MODEL" == "console" ]] ; then
E
eoLinker API Management 已提交
44 45 46 47 48 49
        echo "start fail :need admin url"
        exit 1
    fi

    mkdir -p $WORK_PATH/logs
    echo -e "ENV_PORT=$PORT\nENV_ADMIN=$ADMIN" > $WORK_PATH/$PROG.env
Y
Your Name 已提交
50 51 52 53 54
    
    if [[ "$ADMIN" != "NULL" ]]; then
    	$PROG_PATH/$PROG --admin=$ADMIN --instance=$INSTANCE
    else 
	$PROG_PATH/$PROG --config=$CONFIG_PATH
E
eoLinker API Management 已提交
55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73
    fi
}
 
stop() {
    echo "begin stop"
    if [[ -e "$WORK_PATH/$PROG.pid" ]]; then
        ## Program is running, so stop it
        pid="$(cat $WORK_PATH/$PROG.pid)"
        if [[ "ps ax|grep $pid|grep '$PROG' |awk '{print \$1}'" != ""  ]];then
            kill $pid
            if [[ $? != 0 ]];then
                echo "$PROG stop error"
                exit 1
            fi
            rm -f  "$WORK_PATH/$PROG.pid"
            echo "$PROG stopped"
        fi
    else
        ## Program is not running, exit with error.
Y
Your Name 已提交
74
        echo "Note! $PROG not started!" 1>&2
E
eoLinker API Management 已提交
75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104

    fi
}
 
## Check to see if we are running as root first.
## Found at http://www.cyberciti.biz/tips/shell-root-user-check-script.html
#if [[ "$(id -u)" != "0" ]]; then
#    echo "This script must be run as root" 1>&2
#    exit 1
#fi
#
case "$1" in
    start)
        start $2 $3
        exit 0
    ;;
    stop)
        stop
        exit 0
    ;;
    reload|restart|force-reload)
        stop
        start $2 $3
        exit 0
    ;;
    **)
        echo "Usage: $0 {start|stop|reload|restart|force-reload} [admin url] [port] " 1>&2
        exit 1
    ;;
esac
Y
Your Name 已提交
105