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