---
schema_version: "1"
id: 83cdb77c377fd4bb25c95a4d92d332cdeeccd4fb67796d546d70ab18c326e661
title: Download, Install, Configure, and Upgrade On-Premises Mule Runtime Engine
collection: mulesoft
version: current
locale: en-us
portal_url: https://docs.salesforce.com/mulesoft/current/en-us/on-premises/4.4/runtime-installation-task.md
canonical_url: https://docs.mulesoft.com/on-premises/4.4/runtime-installation-task
source_site: docs.mulesoft.com
content_type: documentation
content_hash: 9adecce3e83904572d8d64adb1c95209ad04fe3c33547ff50917b9e69e590b94
description: MuleSoft Documentation Site
release: "4.4"
latest: false
---
---
product: On-premises Runtimes
version: 4.4
keywords: on-premises, on-prem, standalone, install, download, MULE_HOME, wrapper.conf, wrapper.java.command, offline install, air-gapped, mule upgrade tool, linux, RHEL, windows service, heap, Xmx, Metaspace, wrapper.startup.timeout, multiple instances
---

# Download, Install, Configure, and Upgrade On-Premises Mule Runtime Engine

> For the full documentation index, see: https://docs.mulesoft.com/llms.txt

Download, unpack, and configure on-premises runtime after you confirm
[Hardware and Software Requirements for On-Premises Mule Runtime Engine](https://docs.mulesoft.com/on-premises/4.4/hardware-and-software-requirements).
This is the Download and Wrapper stages in [On-Premises Runtimes Overview](https://docs.mulesoft.com/on-premises/4.4/). After the JVM starts
in the console, stop it and install an [Enterprise license](https://docs.mulesoft.com/on-premises/4.4/installing-an-enterprise-license) before
you run the instance in production.

Before downloading and installing Mule runtime engine, verify that you have a supported JDK
installed. This example uses [Eclipse Temurin 8](https://adoptium.net/temurin/releases/?version=8),
which is recommended for Mule runtime engine 4.4

```console
$ java -version
openjdk version "1.8.0_352"
OpenJDK Runtime Environment (Temurin)(build 1.8.0_352-b08)
OpenJDK 64-Bit Server VM (Temurin)(build 25.352-b08, mixed mode)
```

AdoptOpenJDK moved to the Eclipse Foundation and changed its name to the Eclipse Adoptium project.
The name of the JDK changed to Temurin.

## Download Mule Runtime Engine for On-Premises

Download the Enterprise standalone distribution (`mule-enterprise-standalone-*.zip`) when you have
an Enterprise license. The Mule Kernel (Community Edition) artifact is `mule-standalone-*.zip`.
Kernel does not accept an Enterprise license and does not include clustering.

1.  Download `mule-enterprise-standalone-*.zip` from the MuleSoft Support portal at
    [https://help.mulesoft.com](https://help.mulesoft.com) or from your MuleSoft account
    representative, then unzip it. Don’t use the Anypoint Studio installer to obtain on-premises
    runtime. Studio already includes Mule for development.

2.  Set an environment variable called `MULE_HOME` for the `mule` directory inside your extracted
    folder.

    Example for Mule runtime engine 4.4.0 in the `Downloads` directory:

    - In Windows environments:

      ```console
      $ env:MULE_HOME="C:\Downloads\mule-enterprise-standalone-4.4.0"
      ```

    - In Linux or Unix environments:

      ```console
      $ export MULE_HOME=~/Downloads/mule-enterprise-standalone-4.4.0
      ```

The procedure for making the `MULE_HOME` setting permanent depends on your operating system.

### Test the On-Premises Runtime

After downloading Mule, test to confirm that it runs in your system without errors by executing the
following commands:

- In Windows environments:

  ```powershell
  %MULE_HOME%\bin\mule.bat
  ```

- In Linux or Unix environments:

  ```console
  $ $MULE_HOME/bin/mule
  ```

These commands run Mule in foreground mode, and the startup script displays information on the
terminal’s standard output. You can’t issue further commands on the terminal as long as Mule is
running.

To stop Mule, press `CTRL-C` in the terminal in which the script is running.

## Install as a Windows Service or Linux Daemon

You can install Mule as a Windows service or as a Linux or Unix daemon by executing the
corresponding command:

- In Windows environments:

  ```powershell
  $ $MULE_HOME\bin\mule.bat install
  ```

- In Linux or Unix environments:

  ```console
  $ $MULE_HOME/bin/mule install
  ```

## Configure the Java Service Wrapper

To point Mule runtime engine at a specific JDK, set `wrapper.java.command` in `wrapper.conf` to the
`java` executable path, not to `JAVA_HOME`. An incorrect `wrapper.java.command` value is a common
cause of startup failures.

After installing Mule as a Windows service, you can override the properties defined in the
`wrapper.conf` file by declaring new properties in the `wrapper.additional.conf` file.

The configuration steps change depending on the Mule edition you are using:

- Mule Community Edition

  1.  After adding a new property, reinstall or restart the Windows service.

  2.  Add the property, ensuring that its index is higher than the highest index in the
      `wrapper-additional.conf` file so that your property cannot be overridden.

      For example, imagine that `wrapper-additional.conf` has the following property:

      `wrapper.java.additional.n=-Dproperty=value`

      If `n` is the highest index, you would add your property in the `wrapper.conf` file and
      increment the index, as follows:

      `wrapper.java.additional.n+1=-DyourProperty=valueOfYourProperty`

- Mule Enterprise Edition

  After you install Mule as a service, configure up to 20 additional properties using the following
  command-line argument:

  `-additionalJavaProperties=numberOfExtraProperties`

## Configure JVM Memory and Wrapper Timeouts

The Java Service Wrapper (Tanuki) starts the JVM that hosts on-premises Mule runtime engine. Set
heap, Metaspace, and startup timeouts in `$MULE_HOME/conf/wrapper.conf`. Restart the runtime after
you change this file.

Heap is not the full RAM of the host. Leave memory for the operating system and for Metaspace, which
is a separate pool. Do not set `wrapper.java.maxmemory` equal to the host RAM. The CloudHub vCore
model does not apply on-premises.

Use the wrapper memory properties, not a mix of those properties and `-Xms`/`-Xmx` additional lines,
so one setting does not silently override the other:

wrapper.java.initmemory=1024 wrapper.java.maxmemory=2048

Those values are megabytes and map to `-Xms` and `-Xmx`. To cap Metaspace, add an unused
`wrapper.java.additional.<n>` index:

wrapper.java.additional.<n>=-XX:MaxMetaspaceSize=512m

If two additional properties share the same `<n>`, the wrapper keeps one and ignores the other. Do
not edit `wrapper-additional.conf`; the runtime regenerates that file.

If startup fails with `Timed out waiting for signal from JVM`, increase `wrapper.startup.timeout` in
`wrapper.conf` (seconds). The wrapper kills and can restart the JVM when `Pinging the JVM took`
persists; fix heap, CPU, and GC before raising ping timeouts.

## Install Offline or Air-Gapped

An air-gapped on-premises install does not require outbound internet on the runtime host after you
have the standalone zip. Download `mule-enterprise-standalone-*.zip` (or the Kernel zip) on a
connected machine, transfer the file to the isolated host, unpack it, and set `MULE_HOME`.

The standalone distribution starts without Maven Central. Application JARs must already include
their dependencies. Resolve and package applications on a connected build agent, then copy the
deployable JARs to `$MULE_HOME/apps` (and domain JARs to `$MULE_HOME/domains`).

Do not run Studio’s "install new software" flow on the isolated host to obtain the runtime. That
flow installs Anypoint Studio components, not the on-premises standalone distribution.

## Run Multiple Instances on One Host

Each on-premises Mule runtime engine instance needs its own install directory and its own
`MULE_HOME`. Do not run two instances from the same unpacked zip. Copy or unpack a second
distribution into a different folder, for example `/opt/mule-runtime-a` and `/opt/mule-runtime-b`.

Give each instance unique HTTP and other listener ports in the applications (or in a domain).
Wrapper and cluster ports must not collide. On Windows, install each instance as its own service
from that instance’s `bin` directory so the service name and `wrapper.conf` stay isolated.

Keep a stable path for operations (a symlink such as `/opt/mule` that points at the current
directory) if your monitoring agent or scripts hard-code `MULE_HOME`. Renaming the install directory
after Anypoint Monitoring is installed breaks that agent; reinstall monitoring after a path change.

## Configure CPU Affinity

Many operating systems provide a mechanism to bind a process to one or more central processing units
(CPUs) so that the process executes only on the assigned CPUs. You can configure CPU affinity in
your environment to run Mule in a nonvirtualized multicore server and comply with the number of
cores included in your subscription.

### Review CPU Affinity Considerations

- CPUs have groups of cores that share a cache to improve thread communication and migration
  performance. To avoid such performance issues, check with your infrastructure team to identify
  which cores share this cache before setting up this feature.

- Check with your infrastructure team to ensure that no existing resource allocation policy that can
  interfere with your CPU affinity configuration.

- Ensure that the number of cores you plan to configure through CPU affinity does not exceed the
  number of cores included in your MuleSoft subscription plan.

## Remove the Service or Daemon

You can remove Mule as a Windows service or as a Unix daemon by executing the corresponding command:

- In Windows environments:

  ```powershell
  $ $MULE_HOME\bin\mule.bat remove
  ```

- In Linux or Unix environments:

  ```console
  $ $MULE_HOME/bin/mule remove
  MULE_HOME is set to /Applications/mule-enterprise-standalone-4.4.0
  MULE_BASE is set to /Applications/mule-enterprise-standalone-4.4.0
  Detected Mac OSX:
  Mule Enterprise Edition is not running.
  Removing Mule Enterprise Edition daemon...
  ```

## Install Anypoint Monitoring

You can [install Anypoint Monitoring](https://docs.mulesoft.com/monitoring/am-installing) for cloud-managed supported
versions of on-premises runtime instances to monitor applications running on that server.

## Update, Upgrade, or Migrate Mule Runtime Engine

MuleSoft releases new major, minor, and patch release versions of Mule, as well as monthly updates
to patch releases of Mule that incorporate the latest bug fixes and security enhancements.

- To update a patch version of Mule, see
  [Update Patches to Mule Runtime Engine](https://docs.mulesoft.com/release-notes/mule-runtime/patching-mule-versions).

- To upgrade to a later version of Mule 4, see
  [Upgrading Mule Runtime Engine (Versions 4.x to 4.n)](https://docs.mulesoft.com/release-notes/mule-runtime/updating-mule-4-versions).

- To migrate from Mule 3 to Mule 4, see [Migration to Mule 4](https://docs.mulesoft.com/mule-runtime/latest/).

## Troubleshoot Common Error Messages

### `Timed out waiting for signal from JVM`

The Java Service Wrapper (Tanuki) started the JVM but did not receive a ready signal before
`wrapper.startup.timeout`. Increase that timeout in `wrapper.conf` or fix whatever is blocking JVM
startup (JDK, license, or port conflict).

### `JVM received a signal SIGKILL (9)`

The operating system killed the JVM that hosts on-premises Mule runtime engine. This is not a
graceful `mule stop`. Check the out-of-memory killer, `ulimit` settings, and whether an operator or
orchestrator sent SIGKILL.

### `Pinging the JVM took`

The Java Service Wrapper pinged the JVM and the response was slow. The wrapper can restart Mule
runtime engine when ping delays persist. Review heap, CPU, and GC before raising ping timeouts.

## See Also

- [On-Premises Runtimes Overview](https://docs.mulesoft.com/on-premises/4.4/)

- [Hardware and Software Requirements for On-Premises Mule Runtime Engine](https://docs.mulesoft.com/on-premises/4.4/hardware-and-software-requirements)

- [Install an Enterprise License on On-Premises Mule Runtime Engine](https://docs.mulesoft.com/on-premises/4.4/installing-an-enterprise-license)

- [Start and Stop On-Premises Mule Runtime Engine](https://docs.mulesoft.com/on-premises/4.4/starting-and-stopping-mule-esb)

- [On-Premises Mule Runtime Deployment Model](https://docs.mulesoft.com/on-premises/4.4/mule-deployment-model)

- [Harden Your On-Premises Mule Runtime Engine Installation](https://docs.mulesoft.com/on-premises/4.4/hardening-your-mule-installation)

- [Hybrid Standalone Runtimes](https://docs.mulesoft.com/hybrid-standalone/)
