Ngrok 在 Linux 上的部署笔记。

/etc/hosts

120.55.174.92 t.kbao123.com

文件

/etc/ngrok/ngrok.conf
/usr/sbin/ngrok
/etc/init.d/ngrok
/var/log/ngrok/

启动脚本

/etc/init.d/ngrok

ngrok -config=/etc/ngrok/ngrok.conf -log=/var/log/ngrok/ngrok.log -domain=ip 8080

#!/bin/bash
# chkconfig: - 85 15
# Default-Start:     2 3 4 5
# Description: Ngrok Client
source /etc/profile
DOMAIN=`ifconfig eth0 | grep "inet addr" | awk '{ print $2}' | awk -F: '{print $2}'|awk -F. '{print $3"."$4}'`
PIDFILE="/var/run/ngrok.pid"
PID=`ps -ef|grep ngrok|grep subdomain|grep -v grep| awk '{ print $2}'`

status(){
    ps -ef|grep ngrok|grep -v grep|grep -v status
    netstat -tunlp|grep ngrok |grep -v grep|grep -v status
}
start(){

    if [ -f $PIDFILE ];then 
        if [[ `ps -ef|grep ngrok |grep -v grep |grep subdomain|wc -l` -gt "0" ]]; then
            if [[ $PID -eq `cat $PIDFILE` ]];then
                echo ngrok process is alread running on pid $PID
            else
                ngrok -config=/etc/ngrok/ngrok.conf -log=stdout -log-level=INFO -subdomain=$DOMAIN 8080 1>> /var/log/ngrok/ngrok.log 2>&1 &
                PID=`ps -ef|grep ngrok|grep subdomain|grep -v grep| awk '{ print $2}'`
                echo $PID > $PIDFILE
                status
            fi
        else
                ngrok -config=/etc/ngrok/ngrok.conf -log=stdout -log-level=INFO -subdomain=$DOMAIN 8080 1>> /var/log/ngrok/ngrok.log 2>&1 &
                PID=`ps -ef|grep ngrok|grep subdomain|grep -v grep| awk '{ print $2}'`
                echo $PID > $PIDFILE
                status
        fi
    else
            ngrok -config=/etc/ngrok/ngrok.conf -log=stdout -log-level=INFO -subdomain=$DOMAIN 8080 1>> /var/log/ngrok/ngrok.log 2>&1 &
            PID=`ps -ef|grep ngrok|grep subdomain|grep -v grep| awk '{ print $2}'`
            echo $PID > $PIDFILE
            status
    fi
}
stop(){
    kill -9 `cat $PIDFILE`
    echo killed  `cat $PIDFILE`
}

case $1 in
        start )
        echo Starting ngrok......
                start
                ;;
        stop )
        echo Stoping ngrok......
                stop
                ;;
        status )
        echo Ngrok status:
                status
                ;;
        restart )
        echo Restart ngrok
            stop
            start
            ;;
        * )
                echo "Usage: $0 {start|stop|restart|status}"
                exit 1
                ;;
esac