# CloudLinux Commands: Convert, Licence, CageFS, LVE Limits and Uninstall

Source: https://srvscripts.com/guides/cloudlinux-commands-convert-license-cagefs-lve/
Updated: 2026-10-11
Publisher: srvScripts (https://srvscripts.com/)

**Short answer:** download `cldeploy` from `https://repo.cloudlinux.com/cloudlinux/sources/cln/cldeploy` and run `bash cldeploy --precheck`. Then convert with `bash cldeploy -k YOUR_KEY`, or with `bash cldeploy -i` for an IP-based licence (licences bought through cPanel are IP-based), and reboot into the CloudLinux kernel.

Everyday commands: `cagefsctl` for CageFS, `lvectl` and `lveinfo` for LVE limits, `selectorctl` for the PHP Selector. If the server says it is not registered, re-register with `/usr/sbin/clnreg_ks --force`. Keep the folder `/etc/cl-convert-saved` that the conversion creates: `cldeploy --uninstall` uses it to go back to AlmaLinux, and without it a cPanel server is converted to end-of-life CentOS instead.

What we checked: we downloaded `cldeploy` 1.132 on our cPanel lab server (cPanel & WHM 138, AlmaLinux 9.8) on 11 October 2026, read its options and code, and ran `--precheck`, which changed nothing on the server. We did not convert the lab, because conversion replaces the kernel and is hard to undo. The `cagefsctl`, `lvectl`, `lveinfo` and `selectorctl` commands are quoted from CloudLinux’s command-line documentation; we have not run them on a CloudLinux server for this page.

## Check first: cldeploy --precheck

```
wget https://repo.cloudlinux.com/cloudlinux/sources/cln/cldeploy
bash cldeploy --precheck --skip-version-check
```

On our lab the precheck finished with exit code 0, and the installed package count was the same before and after (2,170). It printed:

```
[CHECK] system is not already converted to CloudLinux - SUCCESS
[CHECK] conversion to CloudLinux is not running - SUCCESS
[CHECK] Detected CloudLinux release 9.8 - SUCCESS
[CHECK] basic system checks passed - SUCCESS
[CHECK] dnf plugins are enabled - SUCCESS
[CHECK] groups clsupergid and clsudoers are empty - SUCCESS
[CHECK] incompatible binary driver is not detected - SUCCESS
[CHECK] incompatible third-party kernel modules are not installed - SUCCESS
[CHECK] conversion will be performed from Almalinux - SUCCESS
```

The precheck log is `/var/log/cldeploy-precheck.log`. A `FAILED` line names the problem to fix before converting, for example a third-party kernel module.

## Convert AlmaLinux to CloudLinux

```
bash cldeploy -k YOUR_ACTIVATION_KEY      # key from CloudLinux Network (CLN)
bash cldeploy -i                         # IP-based licence (e.g. bought through cPanel)
reboot                                   # boot into the CloudLinux kernel
```

To keep the key out of your shell history, `cldeploy` also reads it from the `CLDEPLOY_ACTIVATION_KEY` environment variable. Other options from `cldeploy -h`:

| Option | What it does |
| --- | --- |
| --precheck | Checks whether the server can be converted, then exits |
| -y, --noninteractive | Answers yes to all questions |
| --conversion-only | Converts the OS but does not install control panel components |
| --components-only | Installs only the control panel components |
| --skip-kmod-check | Skips the check for unsupported kernel modules (use with care) |
| --hostinglimits | Also installs mod_hostinglimits |
| --testing-repos | Enables the testing repositories |
| -c, --uninstall | Converts back (see the uninstall section) |

The conversion is logged in `/var/log/cldeploy.log`, and `cldeploy` keeps copies of the original OS release files in `/etc/cl-convert-saved`.

## Licence: key, IP and re-registration

`cldeploy` registers the server with one of two commands, which you can also run yourself:

```
/usr/sbin/rhnreg_ks --activationkey YOUR_KEY     # key-based licence
/usr/sbin/clnreg_ks                              # IP-based licence
/usr/sbin/clnreg_ks --force                      # re-sync an active licence (cPanel's fix for the error below)
```

If `dnf` or cPanel’s `upcp` fails with `This system is not registered with CloudLinux Network server`, check that the licence is active for this server’s IP or key. Then run `/usr/sbin/clnreg_ks --force`. Without `--force` you may see `Command rhn_check exited with code zero. That usually means that registration is not needed. Use --force to override`.

## CageFS commands

| Task | Command |
| --- | --- |
| Create CageFS | cagefsctl --init |
| Cage everyone (except users in users.disabled) | cagefsctl --enable-all |
| Cage one user | cagefsctl --enable USER |
| Uncage one user | cagefsctl --disable USER |
| Is a user caged? | cagefsctl --user-status USER |
| Is CageFS on? | cagefsctl --cagefs-status |
| Current mode | cagefsctl --display-user-mode |
| List caged or uncaged users | cagefsctl --list-enabled / --list-disabled |
| Update the skeleton | cagefsctl --update (--force-update ignores the update period) |
| Remount after editing cagefs.mp | cagefsctl --remount-all |
| Remount one user | cagefsctl -m USER |
| Rebuild a user’s alt-php ini | cagefsctl --rebuild-alt-php-ini USER |
| Self-diagnosis | cagefsctl --sanity-check |
| Back up and recreate CageFS | cagefsctl --reinit |

Do not confuse `--force-update` with `-f`/`--force`: the second one recreates CageFS. For the PHP Selector error that appears when CageFS is off, see [“Cannot manage PHP versions when CageFS is disabled”](/guides/cloudlinux-php-selector-cagefs-error/).

## LVE limits: lvectl and lveinfo

CloudLinux recommends setting limits in LVE Manager in WHM, DirectAdmin or Plesk. From the command line, `lvectl` has the form `lvectl command [lveid] [options]`:

```
lvectl list                                       # loaded LVEs and their limits (IDs)
lvectl list-user                                  # the same with usernames
lvectl set default --speed=100% --pmem=256m       # server defaults (CloudLinux's own example)
lvectl set-user bob --pmem=2048m --maxEntryProcs=40   # one user
lvectl delete-user bob                            # back to the defaults
lvectl package-list                               # limits per hosting package
lvectl apply all                                  # re-apply /etc/container/ve.cfg to every LVE
lvectl destroy all                                # reset all LVEs, killing processes inside them
```

Limit options: `--speed=N%` (CPU, 100% is one core), `--pmem` (physical memory), `--vmem`, `--nproc` (processes), `--maxEntryProcs` (concurrent entry processes, the cause of 508 errors), `--io` (KB/s), `--iops` and `--unlimited`. The older `--save` flag is deprecated. To see who hits limits:

```
lveinfo --period today --order-by aCPU --limit 10 --display-username   # top CPU users today
lveinfo -d --period=1d --by-fault=ep                                   # who hit the entry-process limit
lveinfo --period=1d --user=bob                                         # one user's history
cloudlinux-top                                                         # live view
```

What each limit means and how to choose values: [CloudLinux LVE limits explained](/guides/cloudlinux-lve-limits-explained/). For 508 errors: [“508 Resource Limit Is Reached”](/guides/508-resource-limit-reached/).

## PHP Selector: selectorctl

```
selectorctl --list                                   # available alt-php versions
selectorctl --summary                                # which versions are enabled
selectorctl --set-user-current=8.3 --user=bob        # set one user's PHP version
```

For Python and Node.js, CloudLinux uses `cloudlinux-selector` instead of `selectorctl`.

## Uninstall: what cldeploy --uninstall really does

`cldeploy -c` (`--uninstall`) converts the server back. We did not run it, but we read what version 1.132 does:

- It first removes CageFS, MySQL Governor (`db-governor`), alt-php, alt-python and LVE Manager, so every customer feature that depends on them stops.

- **Converted from AlmaLinux:** the conversion saved the original OS release files in `/etc/cl-convert-saved`. If that folder shows AlmaLinux, the uninstall reinstalls the AlmaLinux release packages.

- **No saved files** (the server was installed as CloudLinux from the start, or the folder was deleted): on cPanel and Plesk it converts to **CentOS** and imports keys from `mirror.centos.org`. CentOS 7 and 8 are end-of-life, so that is not a system to keep.

- **Converted from Rocky Linux:** it stops with `Unfortunately automatic uninstall for RockyLinux is not possible. Reinstall you server from scratch.`

So never delete `/etc/cl-convert-saved`, take a full backup before converting or reverting, and test the revert on a copy of the server first. On a busy production server, a fresh AlmaLinux server plus an account migration is usually less risky than reverting in place; see [migrate cPanel accounts to a new server](/guides/migrate-cpanel-accounts-new-server/).

## Common problems

- **“This system is not registered with CloudLinux Network server”.** Confirm that the licence is active, then run `/usr/sbin/clnreg_ks --force`.

- **The precheck reports an incompatible kernel module.** Remove the module or ask the vendor. `--skip-kmod-check` only hides the warning.

- **Limits do not change after editing ve.cfg.** Run `lvectl apply all`.

- **A user has old files inside CageFS.** Run `cagefsctl --force-update`, then `cagefsctl -m USER`.

- **lvectl rejects --ep.** The option is `--maxEntryProcs`.

## Frequently asked questions

### How do I convert AlmaLinux to CloudLinux?

Download cldeploy from repo.cloudlinux.com/cloudlinux/sources/cln/cldeploy, run bash cldeploy --precheck, then bash cldeploy -k YOUR_KEY (or -i for an IP-based licence) and reboot into the CloudLinux kernel.

### How do I re-register a CloudLinux licence?

For an IP-based licence run /usr/sbin/clnreg_ks --force. For a key run /usr/sbin/rhnreg_ks --activationkey YOUR_KEY. cPanel recommends clnreg_ks --force when dnf or upcp says the system is not registered.

### Can I uninstall CloudLinux and go back to AlmaLinux?

Yes, if the server was converted from AlmaLinux with cldeploy and /etc/cl-convert-saved still exists: cldeploy --uninstall uses it to reinstall the AlmaLinux release. Without that folder, cPanel and Plesk servers are converted to end-of-life CentOS, and servers converted from Rocky Linux are refused. CageFS, alt-php and LVE Manager are removed either way.

### How do I raise a user’s entry process limit?

Run lvectl set-user USERNAME --maxEntryProcs=40, or set it per package in LVE Manager. Check who hit the limit with lveinfo -d --period=1d --by-fault=ep.

### What is the difference between cagefsctl --update and --force-update?

--update adds new and changed files to CageFS when the update period has passed; --force-update does it now, ignoring the period. Neither recreates CageFS; that is --reinit or --force.
