kms 2.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117
  1. #!/bin/bash
  2. # chkconfig: 2345 90 10
  3. # description: A secure socks5 proxy, designed to protect your Internet traffic.
  4. ### BEGIN INIT INFO
  5. # Provides: KMS Emulator
  6. # Required-Start: $network $syslog
  7. # Required-Stop: $network
  8. # Default-Start: 2 3 4 5
  9. # Default-Stop: 0 1 6
  10. # Short-Description: Build yourself KMS Server
  11. # Description: Start or stop the KMS Server
  12. ### END INIT INFO
  13. # Author: Teddysun <[email protected]>
  14. # Source function library
  15. . /etc/rc.d/init.d/functions
  16. # Check that networking is up.
  17. [ ${NETWORKING} ="yes" ] || exit 0
  18. NAME="KMS Server"
  19. DAEMON=/usr/bin/vlmcsd
  20. PID_DIR=/var/run
  21. PID_FILE=$PID_DIR/vlmcsd.pid
  22. LOG_DIR=/var/log
  23. LOG_FILE=$LOG_DIR/vlmcsd.log
  24. RET_VAL=0
  25. [ -x $DAEMON ] || exit 0
  26. if [ ! -d $PID_DIR ]; then
  27. mkdir -p $PID_DIR
  28. if [ $? -ne 0 ]; then
  29. echo "Creating PID directory $PID_DIR failed"
  30. exit 1
  31. fi
  32. fi
  33. if [ ! -d $LOG_DIR ]; then
  34. mkdir -p $LOG_DIR
  35. if [ $? -ne 0 ]; then
  36. echo "Creating LOG directory $LOG_DIR failed"
  37. exit 1
  38. fi
  39. fi
  40. check_running() {
  41. if [ -r $PID_FILE ]; then
  42. read PID < $PID_FILE
  43. if [ -d "/proc/$PID" ]; then
  44. return 0
  45. else
  46. rm -f $PID_FILE
  47. return 1
  48. fi
  49. else
  50. return 2
  51. fi
  52. }
  53. do_status() {
  54. check_running
  55. case $? in
  56. 0)
  57. echo "$NAME (pid $PID) is running..."
  58. ;;
  59. 1|2)
  60. echo "$NAME is stopped"
  61. RET_VAL=1
  62. ;;
  63. esac
  64. }
  65. do_start() {
  66. if check_running; then
  67. echo "$NAME (pid $PID) is already running..."
  68. return 0
  69. fi
  70. $DAEMON -p $PID_FILE -l $LOG_FILE
  71. sleep 0.3
  72. if check_running; then
  73. echo "Starting $NAME success"
  74. else
  75. echo "Starting $NAME failed"
  76. RET_VAL=1
  77. fi
  78. }
  79. do_stop() {
  80. if check_running; then
  81. kill -9 $PID
  82. rm -f $PID_FILE
  83. echo "Stopping $NAME success"
  84. else
  85. echo "$NAME is stopped"
  86. RET_VAL=1
  87. fi
  88. }
  89. do_restart() {
  90. do_stop
  91. do_start
  92. }
  93. case "$1" in
  94. start|stop|restart|status)
  95. do_$1
  96. ;;
  97. *)
  98. echo "Usage: $0 { start | stop | restart | status }"
  99. RET_VAL=1
  100. ;;
  101. esac
  102. exit $RET_VAL