====== JDownloader — Updates, Restart & Troubleshooting ====== JDownloader runs directly on Ubuntu as a **systemd service**. It is **not a Docker container**. Permanent installation directory: /opt/jdownloader Systemd service: jdownloader.service The established JDownloader configuration is stored under: /opt/jdownloader/cfg ===== Normal Update Procedure ===== It is okay to initiate a JDownloader update through **MyJDownloader / the web interface**. JDownloader may stop and restart itself while applying an update. Give it a couple of minutes to complete before intervening. After an update, verify that the service came back: systemctl is-active jdownloader Normal result: active For more detail: sudo systemctl status jdownloader --no-pager The running process can also be checked with: pgrep -af 'java.*JDownloader' A healthy installation should show Java running: /opt/jdownloader/JDownloader.jar For example: /usr/bin/java -Djava.awt.headless=true -jar /opt/jdownloader/JDownloader.jar ===== Starting and Stopping JDownloader ===== Start JDownloader: sudo systemctl start jdownloader Stop JDownloader: sudo systemctl stop jdownloader Restart JDownloader: sudo systemctl restart jdownloader Check whether it is running: systemctl is-active jdownloader Detailed status: sudo systemctl status jdownloader --no-pager ===== If JDownloader Does Not Restart ===== First check its status: sudo systemctl status jdownloader --no-pager If the service is simply stopped, try starting it: sudo systemctl start jdownloader Then verify: systemctl is-active jdownloader If the service fails again, **do not immediately reinstall JDownloader, delete files, or replace the configuration**. Check that the main application files still exist: ls -lh /opt/jdownloader/JDownloader.jar /opt/jdownloader/Core.jar Check whether another JDownloader Java process is already running: pgrep -af 'java.*JDownloader' If ''JDownloader.jar'' is missing or the service still will not start, stop here and investigate the updater logs before changing the installation. ===== Configuration ===== The established JDownloader configuration is stored under: /opt/jdownloader/cfg This directory contains the settings used by the established installation. **Preserve this directory during troubleshooting or recovery.** Do not replace it with the configuration from a newly created or temporary JDownloader installation. ===== .jd_home Warning ===== During an update failure, troubleshooting, or recovery, another JDownloader installation may appear under: /home/mike/.jd_home Do **not** assume this is the permanent installation. The systemd-managed installation is: /opt/jdownloader A ''.jd_home'' installation may contain newly downloaded JDownloader application files while having a new or default configuration. In particular, do **not** replace: /opt/jdownloader/cfg with: /home/mike/.jd_home/cfg unless there is a specific, verified reason to do so. The presence of newer ''JDownloader.jar'' or ''Core.jar'' files under ''.jd_home'' does not by itself mean that JDownloader should be moved there. ===== Logs ===== Show the most recent systemd log entries: journalctl -u jdownloader -n 100 --no-pager Follow the service log live: journalctl -u jdownloader -f Press ''Ctrl+C'' to stop following the log. JDownloader's own logs are stored under: /opt/jdownloader/logs These logs can be useful when diagnosing an update or restart failure. ===== September 21, 2026 Update Failure ===== On September 21, 2026, an update initiated through JDownloader resulted in the service becoming unavailable. Investigation established that JDownloader was operating from the correct installation: /opt/jdownloader At approximately 13:28, JDownloader deliberately initiated its normal update/restart process and launched itself with: JDownloader.jar -forceupdate The updater continued to operate against the correct ''/opt/jdownloader'' installation. Its updater self-test used: /opt/jdownloader/tmp/update/self/JDU/JDownloader.jar and reported: Validate: OK SelfTest Results: OK Self Update successful JDownloader subsequently performed a normal shutdown. At 13:31:59, systemd recorded: jdownloader.service: Deactivated successfully. However, by the next attempt to start the service at 13:32:55: /opt/jdownloader/JDownloader.jar was no longer available. Systemd therefore reported: Error: Unable to access jarfile /opt/jdownloader/JDownloader.jar and subsequent automatic restart attempts failed for the same reason. The exact reason the updater failed to leave a usable replacement ''JDownloader.jar'' in ''/opt/jdownloader'' was not established. The investigation **did not find evidence that initiating the update through MyJDownloader was incorrect**, nor did it establish systemd's ''Restart=on-failure'' setting as the cause. A separate fresh JDownloader installation was discovered under: /home/mike/.jd_home It contained newer application files, but its ''cfg'' directory contained only a small/default configuration. The established configuration under: /opt/jdownloader/cfg was therefore preserved. For this specific recovery, fresh copies of ''JDownloader.jar'' and ''Core.jar'' were restored to ''/opt/jdownloader'' while retaining the existing ''cfg'' directory. After recovery: systemctl is-active jdownloader returned: active and the running Java process again used: /opt/jdownloader/JDownloader.jar MyJDownloader also reconnected using the existing configuration. **Important:** Copying application files from ''.jd_home'' was an incident-specific recovery procedure. It should not be treated as the normal JDownloader update procedure. ===== Quick Post-Update Check ===== After initiating a JDownloader update or restart, wait a couple of minutes and run: systemctl is-active jdownloader ls -lh /opt/jdownloader/JDownloader.jar cat /opt/jdownloader/JDownloader.pid pgrep -af 'java.*JDownloader' Normal results should show: * ''jdownloader'' is ''active'' * ''/opt/jdownloader/JDownloader.jar'' exists * ''JDownloader.pid'' contains a process ID * the same process ID is running Java with ''/opt/jdownloader/JDownloader.jar'' If ''JDownloader.jar'' is missing, **do not repeatedly restart the service, reinstall JDownloader, or replace ''/opt/jdownloader/cfg''**. Stop the service first: sudo systemctl stop jdownloader Then investigate the updater state before restoring any files.