Forums

Articles
Create
cancel
Showing results for 
Search instead for 
Did you mean: 

Confluence refused to start

Kayode Odeyemi September 20, 2012

I'm trying to write a startup script for confluence on Ubuntu server 11.10. I tried the 2 scripts below:

script 1:

#!/bin/bash

### BEGIN INIT INFO

# Provides: confluence

# Required-Start: $local_fs $network mysql

# Should-Start:

# Required-Stop: $local_fs $network mysql

# Should-Stop:

# Default-Start: 2 3 4 5

# Default-Stop: 0 1 6

# Description: Start Confluence - The Enterprise Wiki

### END INIT INFO

## START OF CONFIGURATION

# Name of the user to run as

USER=prisa

# Location of application's bin directory

CATALINA_HOME=/opt/confluence

# Minimum Tomcat heap space (for performance reasons on high load,

# this value should be the same as MAX_HEAP)

MIN_HEAP=1024m

# Maximum Tomcat heap space

MAX_HEAP=1024m

# This should be roughly 40% of your MAX_HEAP

EDEN_SIZE=400m

# Additional options

# see http://confluence.atlassian.com/display/DOC/Recognised+System+Properties for a complete list of options

EXTRA_OPTS=

# Sleep time in seconds, only even numbers

WAIT=10

## TUNING OPTIONS

#

# Most of these optimizations come from

# http://java.sun.com/performance/reference/whitepapers/tuning.html

# http://confluence.atlassian.com/display/DOC/Garbage+Collector+Performance+Issues

#

# No Tuning per default

#TUN_EXTRA_OPTS=

# This setting enables the latest performance optimizations from the Java team

# Be cautious, as this option enables/disables other options and is subject to changes

# from release to release

# In general, this has proven to give Confluence a decent performance boost

#TUN_EXTRA_OPTS=$TUN_EXTRA_OPTS -XX:+AggressiveOpts

# Escape Analysis

#TUN_EXTRA_OPTS=$TUN_EXTRA_OPTS -XX:-DoEscapeAnalysis

# Enable this if you're running a small instance with 512MB - 768MB max heap

#TUN_EXTRA_OPTS=$TUN_EXTRA_OPTS -XX:+UseSerialGC -XX:MaxHeapFreeRatio=10 -XX:MinHeapFreeRatio=5 -XX:NewRatio=8

# If JDK 6 Update 20 or later is installed, enable this

#TUN_EXTRA_OPTS=$TUN_EXTRA_OPTS -XX:+OptimizeStringConcat

# If you run on an Intel CPU with 'Quick Path Interconnect', then enable this

#TUN_EXTRA_OPTS=$TUN_EXTRA_OPTS -XX:+UseNUMA

#

## END OF TUNING OPTIONS

## END OF CONFIGURATION

# Reset everything

true

export JRE_HOME=$CATALINA_HOME/jre

# Write a PID file

export CATALINA_PID=$CATALINA_HOME/work/catalina.pid

# These are our Java parameters

export JAVA_OPTS=-server -Xms$MIN_HEAP -Xmx$MAX_HEAP -XX:NewSize=$EDEN_SIZE -XX:MaxPermSize=256m -Djava.awt.headless=true $EXTRA_OPTS $TUN_EXTRA_OPTS

# Clear the setenv.sh if it isn't empty (because we set the environment via JAVA_OPTS above)

if -s $CATALINA_HOME/bin/setenv.sh ; then

cat /dev/null > $CATALINA_HOME/bin/setenv.sh

fi

APP=confluence

case $1 in

start)

if -e $CATALINA_PID ; then

$0 status &>/dev/null

ret=$?

if $ret = 1 ; then

echo Warning: found stale pidfile (unclean shutdown?)

rm -f $CATALINA_PID

elif $ret = 0 ; then

echo $APP is already running ($CATALINA_PID)

exit $ret

fi

fi

echo Starting $APP

cd $CATALINA_HOME

/bin/su $USER -c $CATALINA_HOME/bin/startup.sh >/dev/null

;;

stop)

pid=$(<$CATALINA_PID)

echo Shutting down $APP

cd $CATALINA_HOME

/bin/su $USER -c $CATALINA_HOME/bin/shutdown.sh >/dev/null

sleep $WAIT

$0 status &>/dev/null

if -f $CATALINA_PID ; then

echo $APP didn't stop within $WAIT seconds, forcing stop...

kill -TERM $pid 2>/dev/null

sleep $(( $WAIT/5 ))

$0 status &>/dev/null

ret=$?

rm -f $CATALINA_PID

if $ret = 0 ; then

# not terminated yet, we force it

echo ($app still running, killing...)

kill -KILL $pid 2>/dev/null

fi

fi

;;

restart)

$0 stop

$0 start

;;

force-reload)

echo Force reload not supported

;;

status)

echo -n $APP is

if ! -f $CATALINA_PID ; then

# not running

echo not running

exit 3

elif -s $CATALINA_PID -a -d /proc/$(<$CATALINA_PID) ; then

# running

echo running

:

else

# stale pid file

echo dead

exit 1

fi

;;

*)

echo Usage: /etc/init.d/$APP {start|restart|stop|status}

exit 1

;;

esac

exit 0

script 2

--------

#!/bin/bash

### BEGIN INIT INFO

# Provides: confluence

# Required-Start: $local_fs $network mysql

# Should-Start:

# Required-Stop: $local_fs $network mysql

# Should-Stop:

# Default-Start: 2 3 4 5

# Default-Stop: 0 1 6

# Description: Start Confluence - The Enterprise Wiki

### END INIT INFO

# Define some variables

# Name of app ( JIRA, Confluence, etc )

APP=confluence

# Name of the user to run as

USER=prisa

# Location of application's bin directory

CATALINA_HOME=/opt/confluence

# Location of Java JDK

export JAVA_HOME=/usr/lib/jvm/java-6-oracle

case $1 in

# Start command

start)

echo Starting $APP

/bin/su -m $USER -c $CATALINA_HOME/bin/start-confluence.sh &> /dev/null

;;

# Stop command

stop)

echo Stopping $APP

/bin/su -m $USER -c $CATALINA_HOME/bin/shutdown.sh &> /dev/null

echo $APP stopped successfully

;;

# Restart command

restart)

$0 stop

sleep 5

$0 start

;;

*)

echo Usage: /etc/init.d/$APP {start|restart|stop}

exit 1

;;

esac

exit 0

I tried script 1, when it fails I removed and tried script 2. script 2 seems fine but then there's no catalina pid generated, so I guess it is not started.

Please I need help with this. We are currently in production and can't access confluence.

Thanks

4 answers

1 accepted

1 vote
Answer accepted
PauloP
Rising Star
Rising Star
Rising Stars are recognized for providing high-quality answers to other users. Rising Stars receive a certificate of achievement and are on the path to becoming Community Leaders.
September 20, 2012

Hi Kayode

I'd suggest to review the all the settings using the official script as a guideline:

https://confluence.atlassian.com/display/DOC/Start+Confluence+Automatically+on+Linux

Probably, you're forgetting to call some Tomcat/JAVA function.

Cheers,

Paulo Renato

1 vote
Bruna Griebeler
Rising Star
Rising Star
Rising Stars are recognized for providing high-quality answers to other users. Rising Stars receive a certificate of achievement and are on the path to becoming Community Leaders.
September 21, 2012

Hi Kayode:

Great script!
It seems to be working fine. I adapted here on Ubuntu and I could start and stop my confluence instance just fine.

1) Check if the path to the scripts are ok:
/opt/confluence/bin/start-confluence.sh
/opt/confluence/bin/stop-confluence.sh

2) Check if the your Java path is correct
export JAVA_HOME=/usr/lib/jvm/java-6-oracle
(you can comment this line or change your JAVA_HOME to /usr/lib/jvm)

3) Check if the USER prisa can actually start confluence. To do that login as that user and see if he is able to manually start it:

root@yourmachine:~# su prisa
prisa@yourmachine:~$ ls /opt/confluence/bin/
prisa@yourmachine:/opt/confluence/bin/$ ./start-confluence.sh

I used root to start my confluence and it started just fine.

4) Try to remove the &> /dev/null from the following lines:
/bin/su -m $USER -c $CATALINA_HOME/bin/start-confluence.sh &> /dev/null
/bin/su -m $USER -c $CATALINA_HOME/bin/shutdown.sh &> /dev/null

So you'll be able to see if the confluence is starting or not.

5) And the last advice:
To see if confluence is actuallt starting, check the process is running.

# ps aux | grep confluence

Hope it helps

0 votes
Bruna Griebeler
Rising Star
Rising Star
Rising Stars are recognized for providing high-quality answers to other users. Rising Stars receive a certificate of achievement and are on the path to becoming Community Leaders.
September 23, 2012

Hi Kayode:

The script that worked fine for me was the second (script2.txt).

I made some changes to my environment.

Attached as txt for security reasons.

0 votes
Kayode Odeyemi September 21, 2012

Thanks.

The line `cat /dev/null > $CATALINA_HOME/bin/setenv.sh` was the major problem in script 1. It cleared entries in setenv.sh. Thanks to Ryan Goodwin for this.

Which of the scripts worked for you Bruna?

Suggest an answer

Log in or Sign up to answer
TAGS
AUG Leaders

Atlassian Community Events