update init script

This commit is contained in:
Teddysun 2016-09-16 11:15:51 +09:00 committed by GitHub
parent abb008cdbd
commit c980bc75fd

View File

@ -1,4 +1,5 @@
#!/bin/bash #!/bin/bash
### BEGIN INIT INFO ### BEGIN INIT INFO
# Provides: shadowsocks # Provides: shadowsocks
# Required-Start: $network $local_fs $remote_fs # Required-Start: $network $local_fs $remote_fs
@ -11,65 +12,81 @@
# Author: Teddysun <i@teddysun.com> # Author: Teddysun <i@teddysun.com>
name=shadowsocks if [ -f /usr/bin/ssserver ]; then
BIN=/usr/local/bin/ssserver BIN=/usr/bin/ssserver
conf=/etc/shadowsocks.json elif [ -f /usr/local/bin/ssserver ]; then
BIN=/usr/local/bin/ssserver
fi
NAME=shadowsocks
CONF=/etc/shadowsocks.json
start(){ check_running(){
$BIN -c $conf -d start PID=`ps -ef | grep -v grep | grep -i "${BIN}" | awk '{print $2}'`
RETVAL=$? if [ ! -z $PID ]; then
if [ "$RETVAL" = "0" ]; then return 0
echo "$name start success"
else else
echo "$name start failed" return 1
fi fi
} }
stop(){ do_start(){
pid=`ps -ef | grep -v grep | grep -i "${BIN}" | awk '{print $2}'` check_running
if [[ ! -z $pid ]]; then if [ $? -eq 0 ]; then
$BIN -c $conf -d stop echo "$NAME is already running with PID $PID"
RETVAL=1
else
$BIN -c $CONF -d start
RETVAL=$? RETVAL=$?
if [ "$RETVAL" = "0" ]; then if [ $RETVAL -eq 0 ]; then
echo "$name stop success" echo "$NAME start success"
else else
echo "$name stop failed" echo "$NAME start failed"
RETVAL=1
fi
fi
}
do_stop(){
check_running
if [ $? -eq 0 ]; then
$BIN -c $CONF -d stop
RETVAL=$?
if [ $RETVAL -eq 0 ]; then
echo "$NAME stop success"
else
echo "$NAME stop failed"
RETVAL=1
fi fi
else else
echo "$name is not running" echo "$NAME is not running"
RETVAL=1 RETVAL=1
fi fi
} }
status(){ do_status(){
pid=`ps -ef | grep -v grep | grep -i "${BIN}" | awk '{print $2}'` check_running
if [[ -z $pid ]]; then if [ $? -eq 0 ]; then
echo "$name is not running" echo "$NAME is running with PID $PID"
RETVAL=1
else
echo "$name is running with PID $pid"
RETVAL=0 RETVAL=0
else
echo "$NAME is not running"
RETVAL=1
fi fi
} }
do_restart(){
do_stop
do_start
}
case "$1" in case "$1" in
'start') start|stop|restart|status)
start do_$1
;; ;;
'stop') *)
stop
;;
'status')
status
;;
'restart')
stop
start
RETVAL=$?
;;
*)
echo "Usage: $0 { start | stop | restart | status }" echo "Usage: $0 { start | stop | restart | status }"
RETVAL=1 RETVAL=1
;; ;;
esac esac
exit $RETVAL exit $RETVAL