Hallo,
erstmal vielen Dank für dieses Paket! Es macht den Einsatz des JDownloaders auf Synology um einiges einfacher.
Zwei kleine Änderungen würde ich aber machen, wie sie eh schon mehrmals in diesem Thread vorgeschlagen wurden:
- Das Logfile sollte deaktiviert werden. Es wächst nicht nur unendlich an (und müllt damit irgendwann die Synology-Systempartition zu) sondern verhindert auch den Standby der Festplatten. Außerdem ist dieses Logfile unnötig. JDownloader schreibt selbst Logs, die auch regelmäßig aufgeräumt werden und den Standby der Festplatten nicht verhindern (laut Aussage eines JDownloader-Entwicklers - habe ich nicht selbst geprüft).
- JDownloader sollte nicht als root laufen.
Ich habe diese Änderungen am Start-Skript gemacht. Falls sie jemand übernehmen will, hier mein gesamtes Skript. Meine Ergänzungen habe ich fett hervorgehoben. Der Benutzer für den JDownloader heißt bei mir "JDownloader". Wenn das bei euch anders ist, entsprechend beim "sudo" Befehl ändern.
Dateiname: start-stop-status
Pfad: /var/packages/JDownloader/scripts/
Inhalt:
Rich (BBCode):
#!/bin/sh
# @version 2015-09-20
# @env run by DSM, $SYNOPKG_PKGDEST example: "/volume1/@appstore/JDownloader"
source /etc/profile
JAVA_BIN="${JAVA_HOME}/bin/java"
JAVA_OPTIONS="-Djava.awt.headless=true -jar"
SYNOPKG_PKGDEST="/volume1/@appstore/JDownloader"
DAEMON="${SYNOPKG_PKGDEST}/JDownloader.jar"
PIDFILE="${SYNOPKG_PKGDEST}/JDownloader.pid"
PACKAGE_NAME="JDownloader"
LOGFILE="/dev/null"
export LC_ALL=en_US.utf8
export LANG=en_US.utf8
case $1 in
start)
if [ ! -f $PIDFILE ]; then
chown -R JDownloader ${SYNOPKG_PKGDEST}
sudo -u JDownloader nohup ${JAVA_BIN} ${JAVA_OPTIONS} ${DAEMON} >>$LOGFILE 2>&1 &
echo "$PACKAGE_NAME started ..."
elif PID=$(cat $PIDFILE) && [ -e /proc/${PID} -a /proc/${PID}/exe ];
then
echo "$PACKAGE_NAME is already running ..."
else
echo "$PACKAGE_NAME process has invalid pid, cleaning up..."
rm $PIDFILE
chown -R JDownloader ${SYNOPKG_PKGDEST}
sudo -u JDownloader nohup ${JAVA_BIN} ${JAVA_OPTIONS} ${DAEMON} >>$LOGFILE 2>&1 &
fi
;;
stop)
PID=$(cat $PIDFILE)
if [ -f $PIDFILE ]; then
kill $PID;
echo "$PACKAGE_NAME stopped ..."
else
echo "$PACKAGE_NAME is not running ..."
fi
;;
restart)
PID=$(cat $PIDFILE)
if [ -f $PIDFILE ]; then
kill $PID;
echo "$PACKAGE_NAME stopped ..."
echo "$PACKAGE_NAME re-starting ..."
sleep 1
chown -R JDownloader ${SYNOPKG_PKGDEST}
sudo -u JDownloader nohup ${JAVA_BIN} ${JAVA_OPTIONS} ${DAEMON} >>$LOGFILE 2>&1 &
sleep 1
echo "$PACKAGE_NAME re-started ..."
else
echo "$PACKAGE_NAME is not running ..."
fi
;;
status)
sleep 1
if [ ! -f $PIDFILE ]; then
echo "$PACKAGE_NAME is stopped ..."
exit 1
else
echo "$PACKAGE_NAME is running ..."
exit 0
fi
;;
log)
echo "$LOGFILE"
;;
checkpw)
cat ${SYNOPKG_PKGDEST}/cfg/org.jdownloader.api.myjdownloader.MyJDownloaderSettings.json|grep -E "email|password" ;;
setpw)
echo "Enter your email address: "
read email
echo "Enter your password: "
read password
echo -ne "{\n \"email\" : \"${email}\",\n \"password\" : \"${password}\"\n}\n" >${SYNOPKG_PKGDEST}/cfg/org.jdownloader.api.myjdownloader.MyJDownloaderSettings.json
;;
enable)
touch /var/packages/JDownloader/enabled
;;
disable)
rm /var/packages/JDownloader/enabled
;;
*)
echo -e "$PACKAGE_NAME package\n\nUsage:\n\t$0 (start|stop|restart|status|log|checkpw|setpw|enable|disable)\n"
;;
esac
exit 0
[/url]