This documentation is for WSO2 Enterprise Service Bus version 4.8.1 . View documentation for the latest release.

All docs This doc
Skip to end of metadata
Go to start of metadata

WSO2 Carbon and any Carbon-based product can be run as a Linux service as described in the following sections:

Before you begin:

  • To find out if this version of the product has issues running on your OS due to the JDK version, see the known incompatibilities section.
  • To find out if this version of the product is fully tested on your operating system, see the compatibility matrix.


Install JDK and set up the JAVA_HOME environment variable. For more information, see Installation Prerequisites.

Setting up CARBON_HOME

Extract the WSO2 product that you want to run as a Linux service and set the environment variable CARBON_HOME to the extracted product directory location.

Running the product as a Linux service

  1. To run the product as a service, create a startup script and add it to the boot sequence. The basic structure of the startup script has three parts (i.e., start, stop and restart) as follows:

    case “$1″ in
       echo “Starting Service”
       echo “Stopping Service”
       echo “Restarting Service”
       echo $”Usage: $0 {start|stop|restart}”
    exit 1

    For example, given below is a startup script written for WSO2 Application Server 5.2.0:

    #! /bin/sh
    export JAVA_HOME="/usr/lib/jvm/jdk1.7.0_07"
    startcmd='/opt/WSO2/wso2as-5.2.0/bin/ start > /dev/null &'
    restartcmd='/opt/WSO2/wso2as-5.2.0/bin/ restart > /dev/null &'
    stopcmd='/opt/WSO2/wso2as-5.2.0/bin/ stop > /dev/null &'
    case "$1" in
       echo "Starting WSO2 Application Server ..."
       su -c "${startcmd}" user1
       echo "Re-starting WSO2 Application Server ..."
       su -c "${restartcmd}" user1
       echo "Stopping WSO2 Application Server ..."
       su -c "${stopcmd}" user1
       echo "Usage: $0 {start|stop|restart}"
    exit 1

    In the above script, the server is started as a user by the name user1 rather than the root user. For example, su -c "${startcmd}" user1 

  2. Add the script to /etc/init.d/ directory.

    If you want to keep the scripts in a location other than /etc/init.d/ folder, you can add a symbolic link to the script in /etc/init.d/ and keep the actual script in a separate location. Say your script name is appserver and it is in /opt/WSO2/ folder, then the commands for adding a link to /etc/init.d/ is as follows:

    • Make executable: sudo chmod a+x /opt/WSO2/appserver

    • Add a link to /etc/init.d/: sudo ln -snf /opt/WSO2/appserver /etc/init.d/appserver
  3. Install the startup script to respective runlevels using the command update-rc.d. For example, give the following command for the sample script shown in step1:

    sudo update-rc.d appserver defaults 

    The defaults option in the above command makes the service to start in runlevels 2,3,4 and 5 and to stop in runlevels 0,1 and 6.

    runlevel is a mode of operation in Linux (or any Unix-style operating system). There are several runlevels in a Linux server and each of these runlevels is represented by a single digit integer. Each runlevel designates a different system configuration and allows access to a different combination of processes. 

  4. You can now start, stop and restart the server using service <service name> {start|stop|restart} command. You will be prompted for the password of the user (or root) who was used to start the service. 

  • No labels