+ Reply to Thread
Results 1 to 2 of 2

Thread: Auto-starting Jira atlassian on Ubuntu 9.10

  1. #1
    joseph's Avatar
    joseph is offline Website Master Achievements:
    500 Experience Points1000 Experience Points5000 Experience Points10000 Experience PointsRecommendation Second Class
    joseph has disabled reputation
    Join Date
    2008-09-08
    Posts
    412

    Default Auto-starting Jira atlassian on Ubuntu 9.10

    Having installed Jira standalone on my Ubuntu 9.04 server, I wanted the Jira server to auto start when it boots. Jira does not provide an auto start script with the installation for Linux.

    After several failed attempts at creating the start up script from scratch, I decided to modify the Tomcat start up scripts that are provided with Tomcat6 so that they start my Jira server instead.

    I have documented below what I ended up doing so that if I ever need to redo the steps, I have recorded it somewhere. These steps may be useful to other people too but there is no guarantee that they will work and no warranty (implied or otherwise) that they will not do something horrible to your server.

    Install Jira standalone:

    1. Installed Sun JDK 1.6 for running Jira using the command:

    sudo apt-get install sun-java6-jdk

    2. Create a new user called jira for running the Jira server
    3. Download the Jira standalone installer and install and configure it
    4. Ensure that Jira is working using your web browser by going to http://localhost:8080/

    Create a new Jira start up script:

    Note: The following steps show how I created the Jira start up script. You can skip these steps as I have included the Jira startup script that I created.

    1. Install Tomcat using the command:

    sudo apt-get install tomcat6

    2. Copy the Tomcat start up script as a base for the Jira start up script

    sudo cp /etc/init.d/tomcat /etc/init.d/jira

    3. Edit the /etc/init.d/jira start up script to change references to Tomcat to Jira and set the directories to refer to /home/jira
    4. Uninstall Tomcat using the command:

    sudo apt-get remove tomcat6

    Jira startup script:

    The following shows the resulting /etc/init.d/jira start up script:
    Code:
    #!/bin/sh
    #
    # /etc/init.d/jira -- startup script for the Jira standalone server
    # Based on the startup script for Tomcat 6 servlet engine
    #
    # Written by Miquel van Smoorenburg <miquels@cistron.nl>.
    # Modified for Debian GNU/Linux    by Ian Murdock <imurdock@gnu.ai.mit.edu>.
    # Modified for Tomcat by Stefan Gybas <sgybas@debian.org>.
    # Modified for Tomcat6 by Thierry Carrez <thierry.carrez@ubuntu.com>.
    # Modified for Jira standalone by MCC
    #
    ### BEGIN INIT INFO
    # Provides:          jira
    # Required-Start:    $local_fs $remote_fs $network
    # Required-Stop:     $local_fs $remote_fs $network
    # Should-Start:      $named
    # Should-Stop:       $named
    # Default-Start:     2 3 4 5
    # Default-Stop:      0 1 6
    # Short-Description: Start Jira.
    # Description:       Start the Jira standalone server.
    ### END INIT INFO
    
    set -e
    
    PATH=/bin:/usr/bin:/sbin:/usr/sbin
    NAME=jira
    DESC="Jira Server"
    DAEMON=/usr/bin/jsvc
    CATALINA_HOME=/home/jira/$NAME
    DEFAULT=/etc/default/$NAME
    JVM_TMP=/tmp/jira-temp
    
    if [ `id -u` -ne 0 ]; then
     echo "You need root privileges to run this script"
     exit 1
    fi
    
    # Make sure jira is started with system locale
    if [ -r /etc/default/locale ]; then
     . /etc/default/locale
     export LANG
    fi
    
    . /lib/lsb/init-functions
    . /etc/default/rcS
    
    # The following variables can be overwritten in $DEFAULT
    
    # Run Jira as this user ID
    JIRA_USER=jira
    
    # The first existing directory is used for JAVA_HOME (if JAVA_HOME is not
    # defined in $DEFAULT)
    JDK_DIRS="/usr/lib/jvm/java-6-sun /usr/lib/jvm/java-6-openjdk /usr/lib/jvm/java-1.5.0-sun /usr/lib/j2sdk1.5-sun /usr/lib/j2sdk1.5-ibm"
    
    # Look for the right JVM to use
    for jdir in $JDK_DIRS; do
     if [ -r "$jdir/bin/java" -a -z "${JAVA_HOME}" ]; then
     JAVA_HOME="$jdir"
     fi
    done
    export JAVA_HOME
    
    # Directory for per-instance configuration files and webapps
    CATALINA_BASE=$CATALINA_HOME
    
    # Use the Java security manager? (yes/no)
    JIRA_SECURITY=no
    
    # Default Java options
    # Set java.awt.headless=true if JAVA_OPTS is not set so the
    # Xalan XSL transformer can work without X11 display on JDK 1.4+
    # It also looks like the default heap size of 64M is not enough for most cases
    # so the maximum heap size is set to 128M
    if [ -z "$JAVA_OPTS" ]; then
     JAVA_OPTS="-Djava.awt.headless=true -Xmx128M"
    fi
    
    # End of variables that can be overwritten in $DEFAULT
    
    # overwrite settings from default file
    if [ -f "$DEFAULT" ]; then
     . "$DEFAULT"
    fi
    
    if [ ! -f "$CATALINA_HOME/bin/bootstrap.jar" ]; then
     log_failure_msg "$NAME is not installed"
     exit 1
    fi
    
    if [ ! -f "$DAEMON" ]; then
     log_failure_msg "missing $DAEMON"
     exit 1
    fi
    
    POLICY_CACHE="$CATALINA_BASE/work/catalina.policy"
    
    JAVA_OPTS="$JAVA_OPTS -Djava.endorsed.dirs=$CATALINA_HOME/endorsed -Dcatalina.base=$CATALINA_BASE -Dcatalina.home=$CATALINA_HOME -Djava.io.tmpdir=$JVM_TMP"
    
    # Set the JSP compiler if set in the tomcat6.default file
    if [ -n "$JSP_COMPILER" ]; then
     JAVA_OPTS="$JAVA_OPTS -Dbuild.compiler=$JSP_COMPILER"
    fi
    
    if [ "$JIRA_SECURITY" = "yes" ]; then
     JAVA_OPTS="$JAVA_OPTS -Djava.security.manager -Djava.security.policy=$POLICY_CACHE"
    fi
    
    # Set juli LogManager if logging.properties is provided
    if [ -r "$CATALINA_BASE"/conf/logging.properties ]; then
     JAVA_OPTS="$JAVA_OPTS "-Djava.util.logging.manager=org.apache.juli.ClassLoaderLogManager" "-Djava.util.logging.config.file="$CATALINA_BASE/conf/logging.properties"
    fi
    
    # Define other required variables
    CATALINA_PID="/var/run/$NAME.pid"
    BOOTSTRAP_CLASS=org.apache.catalina.startup.Bootstrap
    JSVC_CLASSPATH="/usr/share/java/commons-daemon.jar:$CATALINA_HOME/bin/bootstrap.jar"
    
    # Look for Java Secure Sockets Extension (JSSE) JARs
    if [ -z "${JSSE_HOME}" -a -r "${JAVA_HOME}/jre/lib/jsse.jar" ]; then
     JSSE_HOME="${JAVA_HOME}/jre/"
    fi
    export JSSE_HOME
    
    case "$1" in
     start)
     if [ -z "$JAVA_HOME" ]; then
     log_failure_msg "no JDK found - please set JAVA_HOME"
     exit 1
     fi
    
     if [ ! -d "$CATALINA_BASE/conf" ]; then
     log_failure_msg "invalid CATALINA_BASE: $CATALINA_BASE"
     exit 1
     fi
    
     log_daemon_msg "Starting $DESC" "$NAME"
     if start-stop-daemon --test --start --pidfile "$CATALINA_PID" \
     --user $JIRA_USER --startas "$JAVA_HOME/bin/java" \
     >/dev/null; then
    
     # Regenerate POLICY_CACHE file
     #umask 022
     #echo "// AUTO-GENERATED FILE from /etc/tomcat6/policy.d/" \
     #    > "$POLICY_CACHE"
     #echo ""  >> "$POLICY_CACHE"
     #cat $CATALINA_BASE/conf/policy.d/*.policy \
     #    >> "$POLICY_CACHE"
    
     # Remove / recreate JVM_TMP directory
     rm -rf "$JVM_TMP"
     mkdir "$JVM_TMP" || {
     log_failure_msg "could not create JVM temporary directory"
     exit 1
     }
     chown $JIRA_USER "$JVM_TMP"
     cd "$JVM_TMP"
    
     $DAEMON -user "$JIRA_USER" -cp "$JSVC_CLASSPATH" \
     -outfile SYSLOG -errfile SYSLOG \
     -pidfile "$CATALINA_PID" $JAVA_OPTS "$BOOTSTRAP_CLASS"
    
     sleep 5
     if start-stop-daemon --test --start --pidfile "$CATALINA_PID" \
     --user $JIRA_USER --startas "$JAVA_HOME/bin/java" \
     >/dev/null; then
     log_end_msg 1
     else
     log_end_msg 0
     fi
     else
     log_progress_msg "(already running)"
     log_end_msg 0
     fi
     ;;
     stop)
     log_daemon_msg "Stopping $DESC" "$NAME"
     if start-stop-daemon --test --start --pidfile "$CATALINA_PID" \
     --user "$JIRA_USER" --startas "$JAVA_HOME/bin/java" \
     >/dev/null; then
     log_progress_msg "(not running)"
     else
     $DAEMON -cp "$JSVC_CLASSPATH" -pidfile "$CATALINA_PID" \
     -stop "$BOOTSTRAP_CLASS"
     fi
     rm -rf "$JVM_TMP"
     log_end_msg 0
     ;;
     status)
     if start-stop-daemon --test --start --pidfile "$CATALINA_PID" \
     --user $JIRA_USER --startas "$JAVA_HOME/bin/java" \
     >/dev/null; then
    
     if [ -f "$CATALINA_PID" ]; then
     log_success_msg "$DESC is not running, but pid file exists."
     exit 1
     else
     log_success_msg "$DESC is not running."
     exit 3
     fi
     else
     log_success_msg "$DESC is running with pid `cat $CATALINA_PID`"
     fi
     ;;
     restart|force-reload)
     if start-stop-daemon --test --stop --pidfile "$CATALINA_PID" \
     --user $JIRA_USER --startas "$JAVA_HOME/bin/java" \
     >/dev/null; then
     $0 stop
     sleep 1
     fi
     $0 start
     ;;
     try-restart)
     if start-stop-daemon --test --start --pidfile "$CATALINA_PID" \
     --user $JIRA_USER --startas "$JAVA_HOME/bin/java" \
     >/dev/null; then
     $0 start
     fi
     ;;
     *)
     log_success_msg "Usage: $0 {start|stop|restart|try-restart|force-reload|status}"
     exit 1
     ;;
    esac
    
    exit 0
    Ensuring Jira is started at boot time:

    1. Make sure the jira script is executable by running the command:

    sudo chmod +x /etc/init.d/jira

    2. Add the jira start up script to the required run levels by running the command:

    sudo update-rc.d jira defaults 80

    3. Start Jira now using the command:

    sudo /etc/init.d/jira start

    To be completely sure that it has worked, reboot your server and try accessing Jira using your web browser by going to http://localhost:8080/ Hopefully, Jira will have auto started.

  2. #2
    joseph's Avatar
    joseph is offline Website Master Achievements:
    500 Experience Points1000 Experience Points5000 Experience Points10000 Experience PointsRecommendation Second Class
    joseph has disabled reputation
    Join Date
    2008-09-08
    Posts
    412

    Default

    It's a forwarded version which is originally from Fun with Linux

+ Reply to Thread

Similar Threads

  1. LWN: Mandelin: Starting JägerMonkey
    By edenCC in forum Technology News
    Replies: 0
    Last Post: 2010-02-27, 07:42 PM
  2. Auto submit form using php
    By Sitemon in forum Webmasters
    Replies: 1
    Last Post: 2010-02-03, 02:09 PM
  3. LXer: Yum, It’s Starting to Get Tasty
    By edenCC in forum Technology News
    Replies: 0
    Last Post: 2009-06-12, 03:02 AM
  4. LXer: Starting With Sed
    By edenCC in forum Technology News
    Replies: 0
    Last Post: 2009-06-01, 06:18 AM
  5. LXer: Auto-Unlock Keyring Manager In Ubuntu Intrepid
    By edenCC in forum Technology News
    Replies: 0
    Last Post: 2009-03-15, 03:14 AM

Posting Permissions

  • You may not post new threads
  • You may not post replies
  • You may not post attachments
  • You may not edit your posts