Emergency server help: get in touch

KernelCare kcarectl Commands: Licence, Patches, Unload and Uninstall (Tested)

Every kcarectl command a server admin needs, tested on AlmaLinux 9.8 with cPanel 138: install, licence (key, IP, automatic trial), applying and checking live patches, the 401 error, --unload and a clean uninstall with leftovers.

Published 6 min read

Short answer: install with curl -s -L https://kernelcare.com/installer | bash. Register a key with kcarectl --register KEY; IP-based licences need no registration. Apply patches with kcarectl --update and confirm with kcarectl --info (kpatch-state: patch is applied) and kcarectl --uname, which shows the effective, patched kernel version. Remove the patches with kcarectl --unload, then dnf remove kernelcare, and delete the three folders and the repo file it leaves behind.

Applies to kernelcare 3.9-1.el9 (installer v1.30); kernel 5.14.0-687.53.1.el9_8 patched to effective 687.54.1; AlmaLinux 9.8 + cPanel 138; lab test 11 Oct 2026 with an IP trial licence

We ran everything on this page on our cPanel lab server (AlmaLinux 9.8, kernel 5.14.0-687.53.1.el9_8, cPanel 138) on 11 October 2026 with KernelCare 3.9, using the 7-day IP trial that KernelCare requested by itself. We did not test a paid key, because we have none; the key commands are from TuxCare’s documentation. For panel-specific setup, see KernelCare setup on cPanel and DirectAdmin.

kcarectl commands quick reference

TaskCommandWhat we saw
Installcurl -s -L https://kernelcare.com/installer | bash73 seconds; installed kernelcare-3.9-1.el9
Versionkcarectl --version3.9-1.el9
Register a keykcarectl --register KEYFrom TuxCare’s docs
Licence statuskcarectl --license-infoYou have a trial license for the IP ... that will expire on 2026-10-18
Apply patches nowkcarectl --updatePatch level 3 applied. Effective kernel version 5.14.0-687.54.1.el9_8
Patch statekcarectl --infokpatch-state: patch is applied
Effective kernelkcarectl --uname5.14.0-687.54.1.el9_8; uname -r still shows the booted kernel
Patched CVEskcarectl --patch-info | grep CVE-6 CVE entries on our kernel
Remove all patcheskcarectl --unloadKernelCare protection disabled. Your kernel might not be safe
Release a key licencekcarectl --unregisterOn an IP trial: Error unregistering server: cannot find server id
Uninstalldnf remove kernelcareyum remove kernelcare on older systems

Run kcarectl --help for the full list. Version 3.9 also has --status, --check, --smart-update, --auto-update and the userspace (--userspace-*) and library (--lib-*) patching options.

Install

curl -s -L https://kernelcare.com/installer | bash
# or download, read, then run:
curl -fsSL -o kernelcare_install.sh https://kernelcare.com/installer
less kernelcare_install.sh
bash kernelcare_install.sh

https://kernelcare.com/installer redirects to repo.cloudlinux.com/kernelcare/kernelcare_install.sh (installer v1.30 on our test day). An older address you may still see in guides, repo.cloudlinux.com/kernelcare/kc-install.sh, returned 404. The installer adds /etc/yum.repos.d/kernelcare.repo and the TuxCare signing key, installs the kernelcare package, and turns on automatic updates (AUTO_UPDATE=True in /etc/sysconfig/kcare/kcare.conf). Patches are then checked every four hours.

Licence: key, IP and the automatic trial

kcarectl --register YOUR_KEY     # key-based licence
kcarectl --license-info          # what the server is licensed for

An IP-based licence needs no registration: TuxCare’s activation guide says nothing else is required. Do not run kcarectl --register without a key; it only fails with error: argument --register: expected one argument.

With no licence at all, kcarectl --update on our lab printed Requesting trial license for IP ... Please wait... and got a 7-day trial for the server’s IP by itself.

A new licence can take a few minutes to work. Right after the trial was granted, --update kept failing with:

HTTP Error 401: Unauthorized: https://patches.kernelcare.com/patches/.../kpatch.bin

A few minutes later the same command applied the patches. TuxCare’s own explanation for a lasting 401 is an expired licence, or a server that was removed from CloudLinux Network (CLN). Check kcarectl --license-info, and re-register with your key if the licence is key-based.

To move a key licence to a new server, run kcarectl --unregister on the old one and kcarectl --register KEY on the new one. IP licences follow the IP, so change them in your CLN or provider account.

Apply and verify patches

kcarectl --update                 # Patch level 3 applied. Effective kernel version 5.14.0-687.54.1.el9_8 / Kernel is safe
kcarectl --info                   # kpatch-state: patch is applied
kcarectl --uname                  # 5.14.0-687.54.1.el9_8 (effective)
uname -r                          # 5.14.0-687.53.1.el9_8.x86_64 (booted, unchanged)
kcarectl --patch-info | grep -E '^kpatch-cve'

The difference between kcarectl --uname and uname -r is the point of live patching. Security scanners that read uname -r will still report the old kernel, and KernelCare installs kcare-uname for tools that can use it. With patches loaded, lsmod lists the kcare module. To stop automatic patching, set AUTO_UPDATE=False in /etc/sysconfig/kcare/kcare.conf.

Unload patches and uninstall

kcarectl --unload            # remove the live patches (protection off)
kcarectl --unregister        # key licences only
dnf remove kernelcare        # yum remove kernelcare on older systems

After --unload, kcarectl --info went back to No patches applied and the kcare module was gone. After dnf remove kernelcare, these were still on the server:

LeftoverSizeRemove with
/etc/sysconfig/kcare (config and blacklists)12 KBrm -rf /etc/sysconfig/kcare
/usr/libexec/kcare320 KBrm -rf /usr/libexec/kcare
/var/log/kcarectl.log24 KBrm -f /var/log/kcarectl.log
/etc/yum.repos.d/kernelcare.repoRepositoryrm -f /etc/yum.repos.d/kernelcare.repo
rpm key gpg-pubkey-80935b88 (KernelCare Packages)Signing keyrpm -e gpg-pubkey-80935b88

With those removed, our lab’s package count was back to exactly what it was before the install. Removing KernelCare does not change the booted kernel: reboot into an updated kernel from your normal package updates to stay protected.

Common problems

  • HTTP Error 401: Unauthorized on --update. Right after a new licence, wait a few minutes and retry. If it persists, check --license-info and re-register the key.
  • “argument --register: expected one argument”. You ran --register without a key. IP licences do not need it.
  • The vulnerability scanner still reports the old kernel. Scanners read uname -r. Show them kcarectl --uname or kcare-uname, or reboot into the new kernel.
  • The installer URL gives 404. Use https://kernelcare.com/installer; the old kc-install.sh address no longer works.
  • Folders are left after uninstalling. dnf remove leaves the config, libexec folder, log, repo file and key; see the table above.

Frequently asked questions

How do I check that KernelCare is working?

Run kcarectl --info and look for kpatch-state: patch is applied, then kcarectl --uname, which shows the effective kernel version after patching. uname -r keeps showing the kernel you booted.

Do I need to run kcarectl --register for an IP-based licence?

No. TuxCare says nothing else is required for IP-based licences. kcarectl --register expects a key, and without one it fails with expected one argument.

Why does kcarectl --update return HTTP Error 401 Unauthorized?

The licence is not valid for the server yet or any more. On our lab a newly granted trial gave 401 for a few minutes and then worked. If it lasts, check kcarectl --license-info and re-register your key.

How do I uninstall KernelCare?

Run kcarectl --unload to remove the live patches, kcarectl --unregister for a key licence, then dnf remove kernelcare. Afterwards delete /etc/sysconfig/kcare, /usr/libexec/kcare, /var/log/kcarectl.log and /etc/yum.repos.d/kernelcare.repo.

Does KernelCare give a free trial?

On our lab, running kcarectl --update with no licence requested a 7-day trial for the server’s IP automatically. TuxCare also offers trials through its website.

Reading a lot of our guides? Go ad-free with srvScripts Pro for $6 a month. It also pays for new guides. Cancel any time.

Share this guide

Free website test

Is your website set up right?

Check SSL, security headers, redirects, robots.txt, sitemap, llms.txt and security.txt in one test. It takes about 30 seconds.