Guest User

Untitled

a guest
Dec 11th, 2018
82
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 5.77 KB | None | 0 0
  1. #!/bin/sh
  2. #
  3. # /etc/init.d/red5 -- startup script for the red5 server
  4. #
  5. # Based on the tomcat6 init script.
  6. # Written by Miquel van Smoorenburg <miquels@cistron.nl>.
  7. # Modified for Ubuntu red5 by Fred Dixon <ffdixon@bigbluebutton.org>
  8. # Modified for Debian GNU/Linux by Ian Murdock <imurdock@gnu.ai.mit.edu>.
  9. # Modified for Tomcat by Stefan Gybas <sgybas@debian.org>.
  10. # Modified for Tomcat6 by Thierry Carrez <thierry.carrez@ubuntu.com>.
  11. #
  12. ### BEGIN INIT INFO
  13. # Provides: red5
  14. # Required-Start: $local_fs $remote_fs $network
  15. # Required-Stop: $local_fs $remote_fs $network
  16. # Should-Start: $named
  17. # Should-Stop: $named
  18. # Default-Start: 2 3 4 5
  19. # Default-Stop: 1
  20. # Short-Description: Start red5.
  21. # Description: Start the red5 service.
  22. ### END INIT INFO
  23.  
  24. set -e
  25.  
  26. PATH=/bin:/usr/bin:/sbin:/usr/sbin
  27. NAME=red5
  28. DESC="Red5 Server"
  29. RED5_HOME=/usr/local/$NAME
  30. DEFAULT=/etc/default/$NAME
  31. UMASK=0002
  32.  
  33. # These variables are needed by Xuggler
  34. export XUGGLE_HOME=/usr/local
  35. export PATH=$PATH:$XUGGLE_HOME/bin
  36. export LD_LIBRARY_PATH=$XUGGLE_HOME/lib:$LD_LIBRARY_PATH
  37.  
  38.  
  39. if [ `id -u` -ne 0 ]; then
  40. echo "You need root privileges to run this script"
  41. exit 1
  42. fi
  43.  
  44. # Make sure red5 is started with system locale
  45. if [ -r /etc/default/locale ]; then
  46. . /etc/default/locale
  47. export LANG
  48. fi
  49.  
  50. . /lib/lsb/init-functions
  51. . /etc/default/rcS
  52.  
  53.  
  54. # The following variables can be overwritten in $DEFAULT
  55.  
  56. # The first existing directory is used for JAVA_HOME (if JAVA_HOME is not
  57. # defined in $DEFAULT)
  58. JDK_DIRS="/usr/lib/jvm/java-6-openjdk /usr/lib/jvm/java-6-sun /usr/lib/jvm/java-1.5.0-sun /usr/lib/j2sdk1.5-sun /usr/lib/j2sdk1.5-ibm"
  59.  
  60. # Look for the right JVM to use
  61. for jdir in $JDK_DIRS; do
  62. if [ -r "$jdir/bin/java" -a -z "${JAVA_HOME}" ]; then
  63. JAVA_HOME="$jdir"
  64. fi
  65. done
  66. export JAVA_HOME
  67.  
  68.  
  69. # Output file
  70. if [ -z "$OUT_FILE" ]; then
  71. OUT_FILE=/var/log/red5.out
  72. fi
  73.  
  74. # End of variables that can be overwritten in $DEFAULT
  75.  
  76.  
  77. # overwrite settings from default file
  78. if [ -f "$DEFAULT" ]; then
  79. . "$DEFAULT"
  80. fi
  81.  
  82. if [ ! -f "$RED5_HOME/red5.jar" ]; then
  83. log_failure_msg "$NAME is not installed"
  84. exit 1
  85. fi
  86.  
  87. #
  88. # Function to wait if there are connections still open for 1935. Some browsers hang on to a connection
  89. # that prevents a ./red5 restart from binding to port 1935
  90. #
  91. wait_1935_close () {
  92. ACTIVE=$(netstat -ant | grep 1935 | wc | awk -F ' ' '{print $1}')
  93. if [ $ACTIVE != 0 ]; then
  94. echo -n " Waiting for $ACTIVE connections on 1935 to close before starting Red5 "
  95. while [ $ACTIVE != 0 ]; do
  96. echo -n "."
  97. sleep 5
  98. ACTIVE=$(netstat -ant | grep 1935 | wc | awk -F ' ' '{print $1}')
  99. done
  100. fi
  101. echo
  102. }
  103.  
  104. # Define other required variables
  105. RED5_PID="/var/run/$NAME.pid"
  106.  
  107. RED5_MAINCLASS=org.red5.server.Bootstrap
  108. RED5_CLASSPATH="$RED5_HOME/boot.jar:$RED5_HOME/conf:$RED5_HOME/lib/ejb3-persistence.jar"
  109. JAVA_OPTS="-Dpython.home=lib -Xms128M -Xmx128M -Dred5.root=$RED5_HOME -Dlogback.ContextSelector=org.red5.logging.LoggingContextSelector -Dcatalina.useNaming=true -Djava.security.debug=failure -cp $RED5_CLASSPATH org.red5.server.Bootstrap"
  110.  
  111.  
  112. case "$1" in
  113. start)
  114. if [ -z "$JAVA_HOME" ]; then
  115. log_failure_msg "no JDK found - please set JAVA_HOME"
  116. exit 1
  117. fi
  118.  
  119. if [ ! -d "$RED5_HOME/conf" ]; then
  120. log_failure_msg "invalid RED5_HOME: $RED5_HOME"
  121. exit 1
  122. fi
  123.  
  124. log_daemon_msg "Starting $DESC" "$NAME"
  125. if start-stop-daemon --start --test --pidfile $RED5_PID \
  126. --startas "$JAVA_HOME/bin/java" \
  127. >/dev/null; then
  128.  
  129. wait_1935_close
  130.  
  131. start-stop-daemon --start --background --make-pidfile --chuid red5 --umask $UMASK \
  132. --chdir $RED5_HOME --pidfile $RED5_PID --startas "$JAVA_HOME/bin/java" -- $JAVA_OPTS
  133.  
  134. sleep 5
  135.  
  136. # Because we pushed it into the background, we need to check it's status
  137. if start-stop-daemon --test --start --pidfile $RED5_PID --startas "$JAVA_HOME/bin/java" >/dev/null; then
  138. log_end_msg 1
  139. else
  140. log_end_msg 0
  141. fi
  142. else
  143. log_progress_msg "(already running)"
  144. log_end_msg 0
  145. fi
  146. ;;
  147. stop)
  148. log_daemon_msg "Stopping $DESC" "$NAME"
  149. if start-stop-daemon --start --test --pidfile $RED5_PID \
  150. --startas "$JAVA_HOME/bin/java" \
  151. >/dev/null; then
  152. log_progress_msg "(not running)"
  153. else
  154. start-stop-daemon --stop --pidfile $RED5_PID \
  155. --startas "$JAVA_HOME/bin/java"
  156. sleep 5
  157. rm -f $RED5_PID
  158. fi
  159. log_end_msg 0
  160. ;;
  161. status)
  162. if start-stop-daemon --start --test --pidfile $RED5_PID \
  163. --startas "$JAVA_HOME/bin/java" \
  164. >/dev/null; then
  165.  
  166. if [ -f "$RED5_PID" ]; then
  167. log_success_msg "$DESC is not running, but pid file exists."
  168. exit 1
  169. else
  170. log_success_msg "$DESC is not running."
  171. exit 3
  172. fi
  173. else
  174. log_success_msg "$DESC is running with pid `cat $RED5_PID`"
  175. fi
  176. ;;
  177. restart|force-reload)
  178. if start-stop-daemon --test --stop --pidfile "$RED5_PID" \
  179. --startas "$JAVA_HOME/bin/java" \
  180. >/dev/null; then
  181. $0 stop
  182. sleep 1
  183. fi
  184. $0 start
  185. ;;
  186. *)
  187. log_success_msg "Usage: $0 {start|stop|restart|force-reload|status}"
  188. exit 1
  189. ;;
  190. esac
  191.  
  192. exit 0
Add Comment
Please, Sign In to add comment