SS-libev-init-CentOS 2.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124
  1. #!/bin/bash
  2. #
  3. # Script to run SS in daemon mode at boot time.
  4. # ScriptAuthor: icyboy
  5. # Revision 1.0 - 14th Sep 2013
  6. #====================================================================
  7. # Run level information:
  8. # chkconfig: 2345 99 99
  9. # Description: lightweight secured scoks5 proxy
  10. # processname: ss-server
  11. # Author: Max Lv <max.c.lv@gmail.com>;
  12. # Run "/sbin/chkconfig --add shadowsocks" to add the Run levels.
  13. #====================================================================
  14. #====================================================================
  15. # Paths and variables and system checks.
  16. # Source function library
  17. . /etc/rc.d/init.d/functions
  18. # Check that networking is up.
  19. #
  20. [ ${NETWORKING} ="yes" ] || exit 0
  21. # Daemon
  22. NAME=ss-server
  23. DAEMON=/usr/local/bin/ss-server
  24. # Path to the configuration file.
  25. #
  26. CONF=/etc/shadowsocks/config.json
  27. #USER="nobody"
  28. #GROUP="nobody"
  29. # Take care of pidfile permissions
  30. mkdir /var/run/$NAME 2>/dev/null || true
  31. #chown "$USER:$GROUP" /var/run/$NAME
  32. # Check the configuration file exists.
  33. #
  34. if [ ! -f $CONF ]; then
  35. echo "The configuration file cannot be found!"
  36. exit 0
  37. fi
  38. # Path to the lock file.
  39. #
  40. LOCK_FILE=/var/lock/subsys/shadowsocks
  41. # Path to the pid file.
  42. #
  43. PID=/var/run/$NAME/pid
  44. #====================================================================
  45. #====================================================================
  46. # Run controls:
  47. RETVAL=0
  48. # Start SS as daemon.
  49. #
  50. start() {
  51. if [ -f $LOCK_FILE ]; then
  52. echo "$NAME is already running!"
  53. exit 0
  54. else
  55. echo -n $"Starting ${NAME}: "
  56. #daemon --check $DAEMON --user $USER "$DAEMON -f $PID -c $CONF > /dev/null"
  57. daemon $DAEMON -u -c $CONF -f $PID
  58. fi
  59. RETVAL=$?
  60. [ $RETVAL -eq 0 ] && success
  61. echo
  62. [ $RETVAL -eq 0 ] && touch $LOCK_FILE
  63. return $RETVAL
  64. }
  65. # Stop SS.
  66. #
  67. stop() {
  68. echo -n $"Shutting down ${NAME}: "
  69. killproc -p ${PID}
  70. RETVAL=$?
  71. [ $RETVAL -eq 0 ]
  72. rm -f $LOCK_FILE
  73. rm -f ${PID}
  74. echo
  75. return $RETVAL
  76. }
  77. # See how we were called.
  78. case "$1" in
  79. start)
  80. start
  81. ;;
  82. stop)
  83. stop
  84. ;;
  85. restart)
  86. stop
  87. start
  88. ;;
  89. condrestart)
  90. if [ -f $LOCK_FILE ]; then
  91. stop
  92. start
  93. RETVAL=$?
  94. fi
  95. ;;
  96. status)
  97. status $DAEMON
  98. RETVAL=$?
  99. ;;
  100. *)
  101. echo $"Usage: $0 {start|stop|restart|condrestart|status}"
  102. RETVAL=1
  103. esac
  104. exit $RETVAL