packages: red5/red5 - test if current user is red5. Exit otherwise. - part ...

pawelz pawelz at pld-linux.org
Thu Oct 29 09:05:22 CET 2009


Author: pawelz                       Date: Thu Oct 29 08:05:22 2009 GMT
Module: packages                      Tag: HEAD
---- Log message:
- test if current user is red5. Exit otherwise.
- part of code that handles pidfile and starts java process moved to subshell.
  Now it is easy to background this subshell.
- glen: please, review

---- Files affected:
packages/red5:
   red5 (1.7 -> 1.8) 

---- Diffs:

================================================================
Index: packages/red5/red5
diff -u packages/red5/red5:1.7 packages/red5/red5:1.8
--- packages/red5/red5:1.7	Wed Oct 28 18:47:48 2009
+++ packages/red5/red5	Thu Oct 29 09:05:16 2009
@@ -5,6 +5,11 @@
 	exit 1
 fi
 
+if [ "$(whoami)" != "red5" ]; then
+	echo >&2 "This script must be run as red5 user."
+	exit 1
+fi
+
 # set $JAVACMD
 . /usr/share/java-utils/java-functions
 set_javacmd
@@ -16,23 +21,26 @@
 LOGGING_OPTS="-Dlogback.ContextSelector=org.red5.logging.LoggingContextSelector -Dcatalina.useNaming=true"
 SECURITY_OPTS="-Djava.security.debug=failure"
 
-trap 'pid=$(cat /var/run/red5/red5.pid 2>/dev/null); [ "$pid" ] && kill $pid' TERM INT EXIT
-
-# start red5
-cd "$RED5_HOME"
-$JAVACMD \
-	$JAVA_OPTS \
-	$LOGGING_OPTS \
-	$SECURITY_OPTS \
-	-Dpython.home=$RED5_HOME/lib \
-	-Dred5.root=$RED5_HOME \
-	-Dred5.webappsdir=$RED5_WEBAPPSDIR \
-	-cp $RED5_CLASSPATH org.red5.server.Bootstrap "$@" >> /var/log/red5/red5.out &
-
-PID=$!
-
-# XXX: what happens if $JAVACMD fails and $PID is empty?
-
-echo "$PID" > /var/run/red5/red5.pid
-wait $PID
-rm /var/run/red5/red5.pid
+# This subshell is a wrapper that adds pidfile support
+(
+  trap 'pid=$(cat /var/run/red5/red5.pid 2>/dev/null); [ "$pid" ] && kill $pid' TERM INT EXIT
+  # start red5
+  cd "$RED5_HOME"
+  $JAVACMD \
+  	$JAVA_OPTS \
+  	$LOGGING_OPTS \
+  	$SECURITY_OPTS \
+  	-Dpython.home=$RED5_HOME/lib \
+  	-Dred5.root=$RED5_HOME \
+  	-Dred5.webappsdir=$RED5_WEBAPPSDIR \
+  	-cp $RED5_CLASSPATH org.red5.server.Bootstrap "$@" >> /var/log/red5/red5.out &
+  
+  PID=$!
+  
+  # XXX: what happens if $JAVACMD fails and $PID is empty?
+  # - if $PID is empty, or it is not a child process of current shell, wait command will terminate imediately, 
+  
+  echo "$PID" > /var/run/red5/red5.pid
+  wait $PID
+  rm /var/run/red5/red5.pid
+) &
================================================================

---- CVS-web:
    http://cvs.pld-linux.org/cgi-bin/cvsweb.cgi/packages/red5/red5?r1=1.7&r2=1.8&f=u



More information about the pld-cvs-commit mailing list