#1
|
|||
|
|||
Jdownloader2 headless service fails to stop
I have a JDownloader2 headless installation on a Raspberry Pi 3 with Debian Buster installation.
On Debian Stretch it worked fine, but now, on Buster when I try to shutdown the service, JAVA process still running and JDownloader status became... Code:
Aug 26 14:30:37 snakeberry systemd[1]: Stopping LSB: jDownloader2 Server Daemon... Aug 26 14:30:37 snakeberry jdownloader[8039]: Stopping daemon: jDownloader2 Server start-stop-daemon: matching only on non-root pidfile /home/pi/jdownloader2/JDownlo Aug 26 14:30:37 snakeberry systemd[1]: jdownloader.service: Control process exited, code=exited, status=2/INVALIDARGUMENT Aug 26 14:30:37 snakeberry systemd[1]: jdownloader.service: Failed with result 'exit-code'. Aug 26 14:30:37 snakeberry systemd[1]: Stopped LSB: jDownloader2 Server Daemon. Code:
#! /bin/sh # /etc/init.d/jdownloader ### BEGIN INIT INFO # Provides: jDownloader2 # Required-Start: networking # Required-Stop: # Default-Start: 2 3 4 5 # Default-Stop: 0 1 6 # Short-Description: jDownloader2 Server Daemon # Description: T_Send's Starts/Stops/Restarts/Status the jDownloader2 Server Daemon ### END INIT INFO # Author: T_Send Contact: t_send@itnu.pl Web: www.itnu.pl set -e PATH=/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin DESC="jDownloader2 Server" NAME="jdownloader" ## USER for new files ownership & make sure USER has read/write permission to DOWNLOAD-DIR USER=pi GROUP=pi UMASK=077 DIR="/home/pi/jdownloader2" SCRIPT="/etc/init.d/$NAME" PIDFILE="$DIR/JDownloader.pid" JAVA="/usr/lib/jvm/jdk-8-oracle-arm32-vfp-hflt/jre/bin/java" PARM="-Djava.awt.headless=true -jar $DIR/JDownloader.jar" STATUS="$JAVA $PARM" . /lib/lsb/init-functions start_daemon () { start-stop-daemon --start \ --chuid $USER \ --group $GROUP \ --umask $UMASK \ --oknodo \ --background \ --make-pidfile --pidfile $PIDFILE \ --exec $JAVA -- $PARM log_end_msg $? } case "$1" in start) log_daemon_msg "Starting daemon" "$DESC " start_daemon ;; stop) log_daemon_msg "Stopping daemon" "$DESC " start-stop-daemon --stop \ --pidfile $PIDFILE log_end_msg $? ;; restart) log_daemon_msg "Restarting daemon" "$DESC " start-stop-daemon --stop log_end_msg $? start_daemon ;; status) status_of_proc "$STATUS" "$DESC " && exit 0 || exit $? ;; *) log_action_msg "Usage: $SCRIPT {start|stop|restart|status}" || true exit 2 ;; esac exit 0 Thanks |
#2
|
||||
|
||||
do NOT use
Quote:
The pid may change during runtime (eg restart via webinterface or installation of updates). Quote:
__________________
JD-Dev & Server-Admin |
#3
|
||||
|
||||
also add a sleep to restart command as JDownloader might install updates on shutdown and then restart might take some time
__________________
JD-Dev & Server-Admin |
#4
|
|||
|
|||
Modified (without sleep for now) and I removed PIDFILE...
Code:
#! /bin/sh # /etc/init.d/jdownloader ### BEGIN INIT INFO # Provides: jDownloader2 # Required-Start: networking # Required-Stop: # Default-Start: 2 3 4 5 # Default-Stop: 0 1 6 # Short-Description: jDownloader2 Server Daemon # Description: T_Send's Starts/Stops/Restarts/Status the jDownloader2 Server Daemon ### END INIT INFO # Author: T_Send Contact: t_send@itnu.pl Web: www.itnu.pl set -e PATH=/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin DESC="jDownloader2 Server" NAME="jdownloader" ## USER for new files ownership & make sure USER has read/write permission to DOWNLOAD-DIR USER=pi GROUP=pi UMASK=077 DIR="/home/pi/jdownloader2" SCRIPT="/etc/init.d/$NAME" #PIDFILE="$DIR/JDownloader.pid" JAVA="/usr/lib/jvm/jdk-8-oracle-arm32-vfp-hflt/jre/bin/java" PARM="-Djava.awt.headless=true -jar $DIR/JDownloader.jar" STATUS="$JAVA $PARM" . /lib/lsb/init-functions start_daemon () { start-stop-daemon --start \ --chuid $USER \ --group $GROUP \ --umask $UMASK \ --oknodo \ --background \ --exec $JAVA -- $PARM log_end_msg $? } case "$1" in start) log_daemon_msg "Starting daemon" "$DESC " start_daemon ;; stop) log_daemon_msg "Stopping daemon" "$DESC " start-stop-daemon --stop log_end_msg $? ;; restart) log_daemon_msg "Restarting daemon" "$DESC " start-stop-daemon --stop log_end_msg $? start_daemon ;; status) status_of_proc "$STATUS" "$DESC " && exit 0 || exit $? ;; *) log_action_msg "Usage: $SCRIPT {start|stop|restart|status}" || true exit 2 ;; esac exit 0 Code:
Aug 26 23:48:03 snakeberry jdownloader[22983]: Stopping daemon: jDownloader2 Server start-stop-daemon: need at least one of - Aug 26 23:48:03 snakeberry jdownloader[22983]: Try 'start-stop-daemon --help' for more information. Aug 26 23:48:03 snakeberry systemd[1]: jdownloader.service: Control process exited, code=exited, status=3/NOTIMPLEMENTED Aug 26 23:48:03 snakeberry systemd[1]: jdownloader.service: Failed with result 'exit-code'. Aug 26 23:48:03 snakeberry systemd[1]: Stopped LSB: jDownloader2 Server Daemon. |
#5
|
|||
|
|||
Solved, but not with your solution.
First...No need to remove --make-pidfile. It works also after an autorestart after upgrade. Second...On buster something changed... Code:
Aug 27 11:30:58 snakeberry jdownloader[26565]: Stopping daemon: jDownloader2 Server start-stop-daemon: matching only on non-root pidfile /home/pi/jdownloader2/JDownloader.pid is is insecure Aug 27 11:30:58 snakeberry systemd[1]: jdownloader.service: Control process exited, code=exited, status=2/INVALIDARGUMENT Aug 27 11:30:58 snakeberry systemd[1]: jdownloader.service: Failed with result 'exit-code'. Aug 27 11:30:58 snakeberry systemd[1]: Stopped LSB: jDownloader2 Server Daemon. I can solve this by passing --exec and/or --user to stop command (I added just --user)... Code:
stop) log_daemon_msg "Stopping daemon" "$DESC " start-stop-daemon --stop \ --pidfile $PIDFILE \ --user $USER log_end_msg $? ;; Now...service stops without problems. I hope this can helps Last edited by Snake1980; 27.08.2019 at 11:59. |
#6
|
||||
|
||||
I did mean to remove "--make-pidfile" as JDownloader creates this file automatically. In Stop it's still required to know the correct/current PID of the process.
Also you should still add a sleep in restart command as the current script doesn't give enough time for JDownloader to install pending updates Thanks for your feedback and sharing your script!
__________________
JD-Dev & Server-Admin |
#7
|
|||
|
|||
Ok...thanks!
|
#8
|
||||
|
||||
Nothing to thank me for!
__________________
JD-Dev & Server-Admin |
#9
|
||||
|
||||
Quote:
Last edited by palswim; 25.05.2020 at 06:40. Reason: False alarm |
|
|