> For AI agents: the complete documentation index is available at https://www.jumpserver.com/docs/llms.txt, the full documentation bundle is available at https://www.jumpserver.com/docs/llms-full.txt.

# Command-Line Tools

Each JumpServer installation ships with the `jmsctl` management script. It wraps the
Docker Compose project and is the supported way to install, start, stop, back up,
restore, and upgrade the platform. This page lists the most useful commands and
their behavior.

```bash
root@jumpserver-host:~# jmsctl --help

JumpServer Deployment Management Script

Usage:
  ./jmsctl.sh [COMMAND] [ARGS...]
  ./jmsctl.sh --help

Installation Commands:
  install           Install JumpServer
  upgrade           Upgrade JumpServer

Management Commands:
  config            Configuration  Tools
  start [--skip-kotl]   Start     JumpServer
  stop [--skip-kotl]    Stop      JumpServer
  restart [--skip-kotl] Restart   JumpServer
  status [--skip-kotl]  Check     JumpServer
  down              Offline   JumpServer
  uninstall         Uninstall JumpServer

More Commands:
  load_image        Loading docker image
  backup_db         Backup database
  backup_no_audit   Backup database without audit data
  backup_audit      Backup audits tables
  restore_db [file]        Data recovery through database backup file
  raw               Execute the original docker compose command
  tail [service]    View log
```

## Before you begin

- Log in to the JumpServer host with an account that can run Docker commands.
- Change to the JumpServer installation directory before running the script. The
  directory is the extracted installer or upgrade package, commonly
  `/opt/jumpserver`.

## Service commands

| Command                 | Description                                             |
| ----------------------- | ------------------------------------------------------- |
| `./jmsctl.sh install`   | Install JumpServer services and initialize the database |
| `./jmsctl.sh start`     | Start all enabled services                              |
| `./jmsctl.sh stop`      | Stop all services                                       |
| `./jmsctl.sh restart`   | Restart all services                                    |
| `./jmsctl.sh status`    | Show the running state of the services                  |
| `./jmsctl.sh down`      | Take the services offline, including the Docker network |
| `./jmsctl.sh uninstall` | Remove the services                                     |
| `./jmsctl.sh --help`    | Print the command reference                             |

Start and stop commands are also the way to apply configuration changes; there is
no hot reload. See [Configuration](https://www.jumpserver.com/docs/operations/configuration.md).


Warning

`stop`, `down`, `restart`, and `uninstall` interrupt active sessions. Run them in a
maintenance window and notify users first.

## Data commands

| Command                         | Description                                       |
| ------------------------------- | ------------------------------------------------- |
| `./jmsctl.sh backup_db`         | Back up the database and the active configuration |
| `./jmsctl.sh restore_db <file>` | Restore the database from a backup file           |
| `./jmsctl.sh tail [service]`    | Follow the log of one service, or of all services |
| `./jmsctl.sh load_image`        | Load Docker images from the offline package       |
| `./jmsctl.sh raw <args>`        | Run an arbitrary `docker compose` command         |
| `./jmsctl.sh upgrade`           | Upgrade the installation to the packaged version  |

Back up before any upgrade or restore, and verify the backup file before starting
the operation. The full procedure is in [Backup & Restore](https://www.jumpserver.com/docs/operations/backup-restore.md).

## Configuration helper

`./jmsctl.sh config` edits common settings with guided prompts:

```sh
./jmsctl.sh config --help
```

| Subcommand    | Description                            |
| ------------- | -------------------------------------- |
| `config init` | Initialize the configuration file      |
| `config port` | Configure the JumpServer service ports |
| `config ssl`  | Configure Web SSL                      |
| `config env`  | Configure environment variables        |
| `config ntp`  | Configure NTP time synchronization     |

Changes made by the helper are written to `config.txt` and take effect after
`./jmsctl.sh restart`.

## Examples

Check the service state and follow Core logs:

```sh
./jmsctl.sh status
./jmsctl.sh tail core
```

Create a database backup, then restore it later:

```sh
./jmsctl.sh backup_db
./jmsctl.sh restore_db /data/jumpserver/db_backup/jumpserver-v5.0.0-2026-10-28_10:00:00.dump
```

In an enterprise installation, the host management service is managed together
with the containers:

```sh
./jmsctl.sh tail jdmc
```

## Related topics

- [Backup & Restore](https://www.jumpserver.com/docs/operations/backup-restore.md)
- [Configuration](https://www.jumpserver.com/docs/operations/configuration.md)
- [Upgrade & Maintenance](https://www.jumpserver.com/docs/operations/upgrade-maintenance.md)
- [Troubleshooting](https://www.jumpserver.com/docs/operations/troubleshooting.md)
