#17042·Jackett

[req]: when starting Jackett, ensure port is not taken before loading indexers or other resource intensive activity (it may avoid Jackett high CPU load issue/spikes)

Author: slrslrCreated Sep 1, 2026Updated Sep 1, 2026
LabelsPR Welcome!CoreNeeds C#

Is there already a request for your feature?

  • I have checked older issues, open and closed

Is your feature request related to a problem? Please describe.

I have noticed that on my Ubuntu 24 LTS based distribution every few/several seconds "htop" utility shows Jackett being top process utilizing up to one CPU thread (CPU 100%+ spike). I have spend around 30 minutes trying to find out why and found the cause.

Strace reportedly shows the main process (1863754) is nearly idle (just futex waits) — the CPU burn comes from the short-lived child processes.

$ sudo timeout 10 strace -c -f -p $(pgrep -f 'share/Jackett/jackett --NoRestart' | head -1)

strace: Process 1863754 attached with 10 threads
strace: Process 1863842 detached
strace: Process 1865293 detached
strace: Process 1863843 detached
strace: Process 1863769 detached
strace: Process 1863768 detached
strace: Process 1863760 detached
strace: Process 1863759 detached
strace: Process 1863756 detached
strace: Process 1863755 detached
strace: Process 1863754 detached
% time     seconds  usecs/call     calls    errors syscall
------ ----------- ----------- --------- --------- ----------------
 59,77    0,000052          26         2         2 restart_syscall
 40,23    0,000035           1        20         9 futex
------ ----------- ----------- --------- --------- ----------------
100,00    0,000087           3        22        11 total

$ systemctl --user status jackett --no-pager Shows several minutes old lines, despite activity and CPU load happens now.

There is some interesting thing. I have stopped jackett, but it is running: $ systemctl status jackett

○ jackett.service - Jackett Daemon
     Loaded: loaded (/etc/systemd/system/jackett.service; enabled; preset: enabled)
     Active: inactive (dead) (Result: exit-code) since Tue 2026-09-01 08:07:10 CEST; 4s ago
   Duration: 3.644s
    Process: 1924071 ExecStart=/bin/sh /home/usernamehere/.local/share/Jackett/jackett_launcher.sh (code=exited, status=1/FAILURE)
   Main PID: 1924071 (code=exited, status=1/FAILURE)
        CPU: 3.761s

Sep 01 08:07:10 systemd[1]: Stopped jackett.service - Jackett Daemon.
Sep 01 08:07:10 systemd[1]: jackett.service: Consumed 3.761s CPU time.

$ ss -tulnp|grep 9117 tcp LISTEN 0 512 *:9117 *:* users:(("jackett",pid=1863754,fd=319))

Last log lines shows "Error Address already in use: Most likely Jackett is already running. Failed to bind to address": https://justpaste.it/h1idq

/home/usernamehere/.config/Jackett/ServerConfig.json is at https://justpaste.it/g65ix

Issue cause: I had two systemd services/units - a system unit (/etc/systemd/system/jackett.service) and a user unit (~/.config/systemd/user/jackett.service). One root, other user (systemctl --user).

What possibly happens every few seconds: one unit's instance (or the leftover launcher) spawns a new jackett → it loads all 618 indexers (that's the ~100% CPU burst) → fails to bind port → exits.

So i have removed root unit/service and restart user one. Issue solved.

Improvement idea: Could you please make Jackett first check if port (and other necessary things) is available before running any resource intensive tasks?

Describe the solution you'd like

Could you please make Jackett first check if port (and other necessary things) is available before running any resource intensive tasks?