make sure you have the full path for bash on the first line
you have
#!/bin/bash

i have 
#!/usr/bin/bash

also..
set -vset -o verbosePrints shell input lines as they are read.set -xset -o 
xtracePrint command traces before executing command.
take every opportunity to debug your bash script with echo statements.
http://tldp.org/LDP/Bash-Beginners-Guide/html/sect_02_03.html

Martin 
______________________________________________ 
Disclaimer and confidentiality note 
Everything in this e-mail and any attachments relates to the official business 
of Sender. This transmission is of a confidential nature and Sender does not 
endorse distribution to any party other than intended recipient. Sender does 
not necessarily endorse content contained within this transmission. 


> Date: Wed, 27 Aug 2008 21:00:12 -0400
> From: [EMAIL PROTECTED]
> To: users@tomcat.apache.org
> Subject: Re: HOW TO install/setup 2 instances of tomcat on same server
> 
> This error looks like an error in your shell script.  Maybe someone else 
> can offer up some help with this.  I use jsvc in my environment.
> 
> --David
> 
> edponce wrote:
> > just that....
> >
> > -sh: line 0: export: `In the config file': not a valid identifier
> > /bin/bash: /usr/bin/tomcat5-test: Permission denied
> > -sh: line 0: export: `In the config file': not a valid identifier
> > /bin/bash: /usr/bin/tomcat5-test: Permission denied
> >
> >
> >
> > David Smith-2 wrote:
> >   
> >> Anything in catalina.out related to the failed startup?
> >>
> >> --David
> >>
> >> edponce wrote:
> >>     
> >>> david...
> >>> my only problem now is ....
> >>>
> >>> [EMAIL PROTECTED] ~]# tomcat5-test start
> >>> In the config file
> >>> Starting tomcat5-test:                                     [  FAILED  ]
> >>>
> >>> i cant find what is the problem in the config file? any ideas?
> >>>
> >>>
> >>>
> >>> David Smith-2 wrote:
> >>>   
> >>>       
> >>>>> [EMAIL PROTECTED] rc5.d]# tomcat5-test start
> >>>>> -bash: /usr/bin/tomcat5-test: Permission denied
> >>>>>       
> >>>>>           
> >>>> You need to add the execute privilege to your tomcat5-test script.  Take 
> >>>> a look at the man page for chmod.
> >>>>
> >>>>     
> >>>>         
> >>>>> ...
> >>>>> wich was /etc/tomcat5 (where i have the catalina policies and
> >>>>> jkproperties,
> >>>>> etc) for /etc/tomcat5-test....but that raised other questions should i
> >>>>> be
> >>>>> duplicating that folder or my CATALINA_HOME which is /usr/share/tomcat5
> >>>>>       
> >>>>>           
> >>>> I suspect there are soft links in /etc/tomcat5 (or /etc/tomcat5 itself 
> >>>> is a softlink) to /usr/share/tomcat5.  In that case, duplicate both.  
> >>>> Disk space is generally cheap and tomcat doesn't take that much room.  
> >>>> That would also bolster separation of the dev and production 
> >>>> environments as each should have their own log directories.
> >>>>
> >>>> --David
> >>>>
> >>>> edponce wrote:
> >>>>     
> >>>>         
> >>>>> ive created this start script in the /usr/bin/ folder...what i did is
> >>>>> modified the previous path of the original tomcat instance to the new
> >>>>> one...
> >>>>> wich was /etc/tomcat5 (where i have the catalina policies and
> >>>>> jkproperties,
> >>>>> etc) for /etc/tomcat5-test....but that raised other questions should i
> >>>>> be
> >>>>> duplicating that folder or my CATALINA_HOME which is /usr/share/tomcat5
> >>>>> and
> >>>>> when I try running the following start up script i am getting this..
> >>>>> any
> >>>>> ideas why?
> >>>>>
> >>>>> [EMAIL PROTECTED] rc5.d]# tomcat5-test start
> >>>>> -bash: /usr/bin/tomcat5-test: Permission denied
> >>>>>
> >>>>> THIS IS MY START UP SCRIPT...which is a modified copy of the original
> >>>>> script
> >>>>> to startup tomcat
> >>>>>
> >>>>> #!/bin/bash
> >>>>> #
> >>>>> # tomcat5      This shell script takes care of starting and stopping
> >>>>> Tomcat
> >>>>> #
> >>>>> # chkconfig: - 80 20
> >>>>> #
> >>>>> ### BEGIN INIT INFO
> >>>>> # Provides: tomcat5
> >>>>> # Required-Start: $network $syslog
> >>>>> # Required-Stop: $network $syslog
> >>>>> # Default-Start:
> >>>>> # Default-Stop:
> >>>>> # Description: Release implementation for Servlet 2.4 and JSP 2.0
> >>>>> # Short-Description: start and stop tomcat
> >>>>> ### END INIT INFO
> >>>>> #
> >>>>> # - originally written by Henri Gomez, Keith Irwin, and Nicolas Mailhot
> >>>>> # - heavily rewritten by Deepak Bhole and Jason Corley
> >>>>> #
> >>>>>
> >>>>> # commented out until the RHEL and FC daemon functions converge
> >>>>> # Source the function library
> >>>>> #if [ -r "/etc/rc.d/init.d/functions" ]; then
> >>>>>     #. /etc/rc.d/init.d/functions
> >>>>> #fi
> >>>>>
> >>>>> NAME="$(basename $0)"
> >>>>> unset ISBOOT
> >>>>> if [ "${NAME:0:1}" = "S" -o "${NAME:0:1}" = "K" ]; then
> >>>>>     NAME="${NAME:3}"
> >>>>>     ISBOOT="1"
> >>>>> fi
> >>>>>
> >>>>> # For SELinux we need to use 'runuser' not 'su'
> >>>>> if [ -x "/sbin/runuser" ]; then
> >>>>>     SU="/sbin/runuser"
> >>>>> else
> >>>>>     SU="su"
> >>>>> fi
> >>>>>
> >>>>> # Get the tomcat config (use this for environment specific settings)
> >>>>> TOMCAT_CFG="/etc/tomcat5/tomcat5.conf"
> >>>>> if [ -r "$TOMCAT_CFG" ]; then
> >>>>>     . ${TOMCAT_CFG}
> >>>>> fi
> >>>>>
> >>>>> # Get instance specific config file
> >>>>> if [ -r "/etc/sysconfig/${NAME}" ]; then
> >>>>>     . /etc/sysconfig/${NAME}
> >>>>> fi
> >>>>>
> >>>>> # Define which connector port to use
> >>>>> CONNECTOR_PORT="${CONNECTOR_PORT:-8080}"
> >>>>>
> >>>>> # Path to the tomcat launch script
> >>>>> TOMCAT_SCRIPT="/usr/bin/tomcat5-test"
> >>>>>
> >>>>> # Path to the script that will refresh jar symlinks on startup
> >>>>> TOMCAT_RELINK_SCRIPT="${CATALINA_HOME}/bin/relink"
> >>>>>
> >>>>> # Tomcat program name
> >>>>> TOMCAT_PROG="$NAME"
> >>>>>        
> >>>>> # Define the tomcat username
> >>>>> TOMCAT_USER="${TOMCAT_USER:-tomcat}"
> >>>>>
> >>>>> # Define the tomcat log file
> >>>>> TOMCAT_LOG="${TOMCAT_LOG:-/etc/tomcat5-test/logs/catalina.out}"
> >>>>>
> >>>>> RETVAL="0"
> >>>>>
> >>>>> # remove when the RHEL and FC daemon functions converge
> >>>>> # (pulled from /etc/rc.d/init.d/functions)
> >>>>> function checkpid() {
> >>>>>     local i
> >>>>>     for i in $* ; do
> >>>>>         if [ -d "/proc/${i}" ]; then
> >>>>>             return 0
> >>>>>         fi
> >>>>>     done
> >>>>>     return 1
> >>>>> }
> >>>>>
> >>>>> # remove when the RHEL and FC daemon functions converge
> >>>>> # (pulled from /etc/rc.d/init.d/functions)
> >>>>> function echo_failure() {
> >>>>>     echo -en "\\033[60G"
> >>>>>     echo -n "[  "
> >>>>>     echo -n $"FAILED"
> >>>>>     echo -n "  ]"
> >>>>>     echo -ne "\r"
> >>>>>     return 1
> >>>>> }
> >>>>>
> >>>>> # remove when the RHEL and FC daemon functions converge
> >>>>> # (pulled from /etc/rc.d/init.d/functions)
> >>>>> function echo_success() {
> >>>>>     echo -en "\\033[60G"
> >>>>>     echo -n "[  "
> >>>>>     echo -n $"OK"
> >>>>>     echo -n "  ]"
> >>>>>     echo -ne "\r"
> >>>>>     return 0
> >>>>> }
> >>>>>
> >>>>> # Look for open ports, as the function name might imply
> >>>>> function findFreePorts() {
> >>>>>     local isSet1="false"
> >>>>>     local isSet2="false"
> >>>>>     local isSet3="false"
> >>>>>     local lower="8000"
> >>>>>     randomPort1="0"
> >>>>>     randomPort2="0"
> >>>>>     randomPort3="0"
> >>>>>     local -a listeners="( $(
> >>>>>                         netstat -ntl | \
> >>>>>                         awk '/^tcp/ {gsub("(.)*:", "", $4); print $4}'
> >>>>>                     ) )"
> >>>>>     while [ "$isSet1" = "false" ] || \
> >>>>>           [ "$isSet2" = "false" ] || \
> >>>>>           [ "$isSet3" = "false" ]; do
> >>>>>         let port="${lower}+${RANDOM:0:4}"
> >>>>>         if [ -z `expr " ${listeners[*]} " : ".*\( $port \).*"` ]; then
> >>>>>             if [ "$isSet1" = "false" ]; then
> >>>>>                 export randomPort1="$port"
> >>>>>                 isSet1="true"
> >>>>>             elif [ "$isSet2" = "false" ]; then
> >>>>>                 export randomPort2="$port"
> >>>>>                 isSet2="true"
> >>>>>             elif [ "$isSet3" = "false" ]; then
> >>>>>                 export randomPort3="$port"
> >>>>>                 isSet3="true"
> >>>>>             fi
> >>>>>         fi
> >>>>>     done
> >>>>> }
> >>>>>
> >>>>> function makeHomeDir() {
> >>>>>     if [ ! -d "$CATALINA_HOME" ]; then
> >>>>>         echo "$CATALINA_HOME does not exist, creating"
> >>>>>         if [ ! -d "/var/lib/${NAME}" ]; then
> >>>>>             mkdir -p /var/lib/${NAME}
> >>>>>             cp -pLR /var/lib/tomcat5-test/* /var/lib/${NAME}
> >>>>>         fi
> >>>>>         mkdir -p $CATALINA_HOME ${CATALINA_HOME}/conf
> >>>>> /var/cache/${NAME}/temp \
> >>>>>             /var/cache/${NAME}/work /var/log/${NAME}
> >>>>>         for i in temp work; do
> >>>>>             ln -fs /var/cache/${NAME}/${i} ${CATALINA_HOME}/${i}
> >>>>>         done
> >>>>>         for i in common server shared webapps; do
> >>>>>             ln -fs /var/lib/${NAME}/${i} ${CATALINA_HOME}/${i}
> >>>>>         done
> >>>>>         ln -fs /var/log/${NAME} ${CATALINA_HOME}/logs
> >>>>>         cp -pLR /etc/tomcat5-test/* ${CATALINA_HOME}/conf/
> >>>>>         cp -pLR /usr/share/tomcat5-test/bin $CATALINA_HOME
> >>>>>         cp -pLR /etc/tomcat5-test/work/* ${CATALINA_HOME}/work/
> >>>>>         chown ${TOMCAT_USER}:${TOMCAT_USER} /var/log/${NAME}
> >>>>>     fi
> >>>>> }
> >>>>>
> >>>>> function parseOptions() {
> >>>>>     options=""
> >>>>>     options="$options $(
> >>>>>                  awk '!/^#/ && !/^$/ { ORS=" "; print "export ", $0,
> >>>>> ";"
> >>>>> }'
> >>>>> \
> >>>>>                  $TOMCAT_CFG
> >>>>>              )"
> >>>>>     if [ -r "/etc/sysconfig/${NAME}" ]; then
> >>>>>         options="$options $(
> >>>>>                      awk '!/^#/ && !/^$/ { ORS=" ";
> >>>>>                                            print "export ", $0, ";" }'
> >>>>> \
> >>>>>                      /etc/sysconfig/${NAME}
> >>>>>                  )"
> >>>>>     fi
> >>>>>     TOMCAT_SCRIPT="$options $TOMCAT_SCRIPT"
> >>>>> }
> >>>>>
> >>>>> # See how we were called.
> >>>>> function start() {
> >>>>>     echo -n "Starting ${TOMCAT_PROG}: "
> >>>>>     if [ -f "/var/lock/subsys/${NAME}" ] ; then
> >>>>>         if [ -f "/var/run/${NAME}.pid" ]; then
> >>>>>             read kpid < /var/run/${NAME}.pid
> >>>>>                 if checkpid $kpid 2>&1; then
> >>>>>                     echo "$NAME process already running"
> >>>>>                         return -1
> >>>>>                     else
> >>>>>                         echo "lock file found but no process running
> >>>>> for"
> >>>>>                         echo "pid $kpid, continuing"
> >>>>>                 fi
> >>>>>         fi
> >>>>>     fi
> >>>>>     export CATALINA_PID="/var/run/${NAME}.pid"
> >>>>>     touch $CATALINA_PID
> >>>>>     chown ${TOMCAT_USER}:${TOMCAT_USER} $CATALINA_PID
> >>>>>     if [ "$CATALINA_HOME" != "/etc/tomcat5-test" ]; then
> >>>>>         # Create a tomcat directory if it doesn't exist
> >>>>>         makeHomeDir
> >>>>>         # If CATALINA_HOME doesn't exist modify port number so that
> >>>>>         # multiple instances don't interfere with each other
> >>>>>         findFreePorts
> >>>>>         sed -i -e "s/8005/${randomPort1}/g" -e
> >>>>> "s/8080/${CONNECTOR_PORT}/g"
> >>>>> \
> >>>>>             -e "s/8009/${randomPort2}/g" -e "s/8443/${randomPort3}/g" \
> >>>>>             ${CATALINA_HOME}/conf/server.xml
> >>>>>     fi
> >>>>>     $TOMCAT_RELINK_SCRIPT
> >>>>>     $SU - $TOMCAT_USER -c "$TOMCAT_SCRIPT start" >> $TOMCAT_LOG 2>&1
> >>>>>     RETVAL="$?"
> >>>>>     if [ "$RETVAL" -eq 0 ]; then
> >>>>>         echo_success
> >>>>>         touch /var/lock/subsys/${NAME}
> >>>>>     else
> >>>>>         echo_failure
> >>>>>     fi
> >>>>>     echo
> >>>>>     return $RETVAL
> >>>>> }
> >>>>>
> >>>>> function status() {
> >>>>>     RETVAL="1"
> >>>>>     if [ -f "/var/run/${NAME}.pid" ]; then
> >>>>>         read kpid < /var/run/${NAME}.pid
> >>>>>         if checkpid $kpid 2>&1; then
> >>>>>             echo "$0 is already running (${kpid})"
> >>>>>             RETVAL="0"
> >>>>>         else
> >>>>>             echo "lock file found but no process running for pid $kpid"
> >>>>>         fi
> >>>>>     else
> >>>>>         pid="$(pgrep -u tomcat java)"
> >>>>>         if [ -n "$pid" ]; then
> >>>>>             echo "$0 running (${pid}) but no PID file exists"
> >>>>>             RETVAL="0"
> >>>>>         else
> >>>>>             echo "$0 is stopped"
> >>>>>         fi
> >>>>>     fi
> >>>>>     return $RETVAL
> >>>>> }
> >>>>>
> >>>>> function stop() {
> >>>>>     local STOP_VERBOSE="false"
> >>>>>     echo -n "Stopping $TOMCAT_PROG: "
> >>>>>     if [ -f "/var/lock/subsys/${NAME}" ]; then
> >>>>>         $SU - $TOMCAT_USER -c "$TOMCAT_SCRIPT stop" >> $TOMCAT_LOG 2>&1
> >>>>>         RETVAL="$?"
> >>>>>         if [ "$RETVAL" -eq "0" ]; then
> >>>>>             count="0"
> >>>>>             if [ -f "/var/run/${NAME}.pid" ]; then
> >>>>>                 read kpid < /var/run/${NAME}.pid
> >>>>>                 until [ "$(ps --pid $kpid | grep -c $kpid)" -eq "0" ]
> >>>>> ||
> >>>>> \
> >>>>>                       [ "$count" -gt "$SHUTDOWN_WAIT" ]; do
> >>>>>                     if [ "$STOP_VERBOSE" = "true" ]; then
> >>>>>                         echo -n -e "\nwaiting for processes $kpid to
> >>>>> exit"
> >>>>>                     fi
> >>>>>                     sleep 1
> >>>>>                     let count="${count}+1"
> >>>>>                 done
> >>>>>                 if [ "$count" -gt "$SHUTDOWN_WAIT" ]; then
> >>>>>                     if [ "$STOP_VERBOSE" = "true" ]; then
> >>>>>                         echo -n -e "\nkilling processes which didn't
> >>>>> stop"
> >>>>>                         echo -n -e "after "
> >>>>>                         echo -n "$SHUTDOWN_WAIT seconds"
> >>>>>                     fi
> >>>>>                     kill -9 $kpid
> >>>>>                 fi
> >>>>>                 echo_success
> >>>>>                 if [ "$count" -gt "0" ]; then
> >>>>>                     echo -n -e "\n"
> >>>>>                 fi
> >>>>>             fi
> >>>>>             rm -f /var/lock/subsys/$NAME /var/run/$NAME.pid
> >>>>>         else
> >>>>>             echo_failure
> >>>>>         fi
> >>>>>     fi
> >>>>> }
> >>>>>
> >>>>>
> >>>>> # See how we were called.
> >>>>> case "$1" in
> >>>>>     start)
> >>>>>         parseOptions
> >>>>>         start
> >>>>>         ;;
> >>>>>     stop)
> >>>>>         parseOptions
> >>>>>         stop
> >>>>>         ;;
> >>>>>     restart)
> >>>>>         parseOptions
> >>>>>         stop
> >>>>>         sleep 2    
> >>>>>         start
> >>>>>         ;;
> >>>>>     condrestart)
> >>>>>         if [ -f "/var/run/${NAME}.pid" ]; then
> >>>>>             parseOptions
> >>>>>             stop
> >>>>>             start
> >>>>>         fi
> >>>>>         ;;
> >>>>>     status)
> >>>>>         status
> >>>>>         ;;
> >>>>>     version)
> >>>>>         parseOptions
> >>>>>         "${JAVA_HOME}/bin/java" \
> >>>>>             -classpath "${CATALINA_HOME}/server/lib/catalina.jar" \
> >>>>>             org.apache.catalina.util.ServerInfo
> >>>>>         ;;
> >>>>>     *)
> >>>>>         echo "Usage: $TOMCAT_PROG
> >>>>> {start|stop|restart|condrestart|status|version}"
> >>>>>         exit 1
> >>>>> esac
> >>>>>
> >>>>> exit $RETVAL
> >>>>>
> >>>>>   
> >>>>>       
> >>>>>           
> >> ---------------------------------------------------------------------
> >> To start a new topic, e-mail: users@tomcat.apache.org
> >> To unsubscribe, e-mail: [EMAIL PROTECTED]
> >> For additional commands, e-mail: [EMAIL PROTECTED]
> >>
> >>
> >>
> >>     
> >
> >   
> 
> 
> -- 
> David Smith
> Programmer/Analyst
> College of Agriculture and Life Sciences
> Cornell University
> B32 Morrison Hall
> Ithaca, NY 14853
> Phone: (607) 255-4521
> 
> 
> ---------------------------------------------------------------------
> To start a new topic, e-mail: users@tomcat.apache.org
> To unsubscribe, e-mail: [EMAIL PROTECTED]
> For additional commands, e-mail: [EMAIL PROTECTED]
> 

_________________________________________________________________
See what people are saying about Windows Live.  Check out featured posts.
http://www.windowslive.com/connect?ocid=TXT_TAGLM_WL_connect2_082008

Reply via email to