1
+ #! /bin/bash
2
+ # chkconfig: 2345 90 10
3
+ # description: ShadowsocksR
4
+
5
+ # ## BEGIN INIT INFO
6
+ # Provides: ShadowsocksR
7
+ # Required-Start: $network $syslog
8
+ # Required-Stop: $network
9
+ # Default-Start: 2 3 4 5
10
+ # Default-Stop: 0 1 6
11
+ # Short-Description: Lightweight SOCKS5 proxy tool
12
+ # Description: Start or stop the ShadowsocksR mudbjson server
13
+ # ## END INIT INFO
14
+
15
+ NAME=" ShadowsocksR"
16
+ NAME_BIN=" server.py"
17
+ FOLDER=" /usr/local/shadowsocksr"
18
+ BIN=" /usr/local/shadowsocksr/server.py"
19
+ Info_font_prefix=" \033[32m" && Error_font_prefix=" \033[31m" && Info_background_prefix=" \033[42;37m" && Error_background_prefix=" \033[41;37m" && Font_suffix=" \033[0m"
20
+ RETVAL=0
21
+
22
+ check_running (){
23
+ PID=` ps -ef | grep " ${NAME_BIN} " | grep -v " grep" | grep -v " init.d" | grep -v " service" | awk ' {print $2}' `
24
+ if [[ ! -z ${PID} ]]; then
25
+ return 0
26
+ else
27
+ return 1
28
+ fi
29
+ }
30
+ do_start (){
31
+ check_running
32
+ if [[ $? -eq 0 ]]; then
33
+ echo -e " ${Info_font_prefix} [信息]${Font_suffix} $NAME (PID ${PID} ) 正在运行..." && exit 0
34
+ else
35
+ cd ${FOLDER}
36
+ # python_ver=$(ls /usr/bin|grep -e "^python[23]\.[1-9]\+$"|tail -1)
37
+ python_ver=" python"
38
+ ulimit -n 512000
39
+ nohup " ${python_ver} " " $BIN " a >> ssserver.log 2>&1 &
40
+ sleep 2s
41
+ check_running
42
+ if [[ $? -eq 0 ]]; then
43
+ echo -e " ${Info_font_prefix} [信息]${Font_suffix} $NAME 启动成功 !"
44
+ else
45
+ echo -e " ${Error_font_prefix} [错误]${Font_suffix} $NAME 启动失败 !"
46
+ fi
47
+ fi
48
+ }
49
+ do_stop (){
50
+ check_running
51
+ if [[ $? -eq 0 ]]; then
52
+ kill -9 ${PID}
53
+ RETVAL=$?
54
+ if [[ $RETVAL -eq 0 ]]; then
55
+ echo -e " ${Info_font_prefix} [信息]${Font_suffix} $NAME 停止成功 !"
56
+ else
57
+ echo -e " ${Error_font_prefix} [错误]${Font_suffix} $NAME 停止失败 !"
58
+ fi
59
+ else
60
+ echo -e " ${Info_font_prefix} [信息]${Font_suffix} $NAME 未运行"
61
+ RETVAL=1
62
+ fi
63
+ }
64
+ do_status (){
65
+ check_running
66
+ if [[ $? -eq 0 ]]; then
67
+ echo -e " ${Info_font_prefix} [信息]${Font_suffix} $NAME (PID ${PID} ) 正在运行..."
68
+ else
69
+ echo -e " ${Info_font_prefix} [信息]${Font_suffix} $NAME 未运行 !"
70
+ RETVAL=1
71
+ fi
72
+ }
73
+ do_restart (){
74
+ do_stop
75
+ do_start
76
+ }
77
+ case " $1 " in
78
+ start|stop|restart|status)
79
+ do_$1
80
+ ;;
81
+ * )
82
+ echo -e " 使用方法: $0 { start | stop | restart | status }"
83
+ RETVAL=1
84
+ ;;
85
+ esac
86
+ exit $RETVAL
0 commit comments