Apres avoir passé plusieurs heures à tout bien faire fonctionner, je me suis dis que ca vallait le coup de faire tourner l'info.
Je me suis basé sur plusieurs sites :
http://www.chrisgahlert.com/blog/2010-11-25/howto-run-jdownloader-from-commandline-and-connect-via-vnc/
http://blog.is-a-geek.org/jdownloader-headless-mit-web-interface-auf-ubuntu-server-10-04
http://forum.ubuntu-fr.org/viewtopic.php?id=363232
Alors ma version fonctionne sur un serveur ubuntu 12.10 et en user root.
1ere étape :
installer les logiciels qui seront necessaire au bon fonctionnement du tout.
apt-get install -y x11vnc xvfb screen
Il est necessaire d'avoir une plate-forme
java pour
JDownloader.
Perso je n'ai pas réussi à installer
OpenJDK, des soucis de dépendances qui voulaient pas s'installer... Du coup j'ai installer la version
d'oracle
2e étape :
Utiliser un script qui gérera JDownloader.
Il suffit simplement de créer le fichier /etc/init.d/jdownloader avec ce contenu en y modifiant :
jddossier="Le dossier d'installation du logiciel, ex : /home/hizoka/.jdownloader"
mdp="Le mot de passe qui sera utilisé pour se connecter en vpn"
#!/bin/bash
RAZ="\e[m"
BLEUFONCE="\033[1;34m"
VERT="\033[0;32m"
ROUGE="\033[1;31m"
# Fichier d'installation de JDownloader
JDINSTALLER=http://update0.jdownloader.org/jdupdate.jar
# Dossier d'installation de JDownloader
jddossier=""
# Mot de passe pour se connecter en VPN
mdp=""
# Vérifie qu'un dossier est indiqué
if [[ -z "${jddossier}" ]]
then
echo -e "\n${ROUGE}Aucun dossier d'installation d'indiqué.${RAZ}"
read -p "Indiquer un dossier pour JDownloader : " jddossier
# Modification de la variable
sed -i "s;^jddossier=.*;jddossier=\"${jddossier}\";" /etc/init.d/jdownloader
fi
case "${1}" in
link)
# Ajout de lien à télécharger
if [[ $(ps ax | grep -i "SCREEN -AmdS jdownloader" | grep -v "grep") ]]
then
# Une instance est déja presente
echo -e "\n${BLEUFONCE}Ajout des liens${RAZ} : ${@/#link }"
screen -AmdS jdlink java -Xmx512m -jar "${jddossier}/JDownloader.jar" --add-links ${@/#link }
else
# Lancement de JDownloader avec avec ajout des liens
echo -e "\n${BLEUFONCE}Lancement de JDownloader avec les liens${RAZ} : ${@/#link }"
screen -AmdS jdownloader java -Xmx512m -jar "${jddossier}/JDownloader.jar" --add-links ${@/#link }
fi
;;
install)
echo
# Creation du dossier s'il n'existe pas
if [[ ! -d "${jddossier}" ]]
then
echo -e "${BLEUFONCE}Création${RAZ} du dossier d'installation."
mkdir -p "${jddossier}"
fi
# Téléchargement du logiciel
echo -e "${BLEUFONCE}Téléchargement${RAZ} du logiciel."
wget -q "${JDINSTALLER}" -O "${jddossier}"/jdupdate.jar
# Installation du logiciel
echo -e "${BLEUFONCE}Installation${RAZ} du logiciel."
java -Xmx512m -jar "${jddossier}"/jdupdate.jar
;;
update)
# Si le fichier n'existe pas, c'est qu'il n'est pas installé
if [[ ! -f "${jddossier}/jdupdate.jar" ]]
then
echo -e "\n${ROUGE}Le logiciel ne semble pas être installé, lancement du service d'installation.${RAZ}"
service jdownloader install
exit
fi
# Lancement de la mise à jour
echo -e "\n${BLEUFONCE}Recherche et installation${RAZ} de mise à jour."
java -Xmx512m -jar "${jddossier}/jdupdate.jar"
;;
start)
# Vérification de la présence du logiciel
if [[ ! -f "${jddossier}/JDownloader.jar" ]]
then
echo -e "\n${ROUGE}Le logiciel ne semble pas être installé, lancement du service d'installation.${RAZ}"
service jdownloader install
exit
fi
# Lancement de jdownloader avec modification du DISPLAY pour simplement le rendre compatible avec x11vnc
echo -e "${VERT}Démarrage${RAZ} de ${BLEUFONCE}jdownloader${RAZ}..."
old_DISPLAY="${DISPLAY}"
export DISPLAY=:1
screen -AmdS jdownloader java -Xmx512m -jar "${jddossier}/JDownloader.jar"
DISPLAY="${old_DISPLAY}"
sleep 3
if [[ $(ps ax | grep -i "JDownloader.jar" | grep -v "grep") ]]
then
echo -e "Lancement de JDownloader ${VERT}OK${RAZ}\n"
else
echo -e "${ROUGE}Echec du lancement de JDownloader${RAZ}\n"
fi
;;
stop)
# Dans le cas ou il y a déjà une instance de jdownloader lancé via screen
if [[ $(ps ax | grep -i "SCREEN -AmdS jdownloader" | grep -v "grep") ]]
then
echo -e "\n${VERT}Arrêt${RAZ} de l'instance de Jdownloader en cours..."
screen -S jdownloader -X quit
fi
# Dans le cas ou il y a déjà une instance de xvfb lancé via screen
if [[ $(ps ax | grep -i "SCREEN -AmdS xvfb" | grep -v "grep") ]]
then
echo -e "\n${VERT}Arrêt${RAZ} de l'instance de Xvfb en cours..."
screen -S xvfb -X quit
fi
# Dans le cas ou il y a déjà une instance de xvfb lancé via screen
if [[ $(ps ax | grep -i "SCREEN -AmdS xvfb" | grep -v "grep") ]]
then
echo -e "\n${VERT}Arrêt${RAZ} de l'instance de Xvfb en cours..."
screen -S xvfb -X quit
fi
# Pause laissant le te temps de tout arreter
sleep 3
# Vérification de l'arret de JDownloader
if [[ -z $(ps ax | grep -i "JDownloader.jar" | grep -v "grep") ]]
then
echo -e "JDownloader est ${VERT}arrêté${RAZ}\n"
else
echo -e "${ROUGE}Echec de l'arrêt de JDownloader${RAZ}\n"
fi
;;
x11)
# Dans le cas ou il y a déjà une instance de jdownloader lancé via screen, on ne fait rien
if [[ -z $(ps ax | grep -i "SCREEN -AmdS jdownloader" | grep -v "grep") ]]
then
# Lancement de jdownloader
echo -e "${VERT}Démarrage${RAZ} de ${BLEUFONCE}jdownloader${RAZ}..."
old_DISPLAY="${DISPLAY}"
export DISPLAY=:1
screen -AmdS jdownloader java -Xmx512m -jar "${jddossier}/JDownloader.jar"
DISPLAY="${old_DISPLAY}"
fi
# Dans le cas ou il y a déjà une instance de xvfb lancé via screen, on ne fait rien
if [[ -z $(ps ax | grep -i "SCREEN -AmdS xvfb" | grep -v "grep") ]]
then
echo -e "\n${VERT}Démarrage${RAZ} de ${BLEUFONCE}Xvfb${RAZ}..."
screen -AmdS xvfb Xvfb :1
fi
# Dans le cas ou il y a déjà une instance de x11vnc lancé via screen, on ne fait rien
if [[ -z $(ps ax | grep -i "SCREEN -AmdS xvfb" | grep -v "grep") ]]
then
# Il manque la decoration...
echo -e "${VERT}Démarrage${RAZ} de ${BLEUFONCE}x11${RAZ}..."
screen -AmdS x11vnc x11vnc -display :1 -passwd "${mdp}"
fi
;;
*)
echo -e "\n${BLEUFONCE}Utilisation${RAZ} : ${VERT}service jdownloader ${BLEUFONCE}ACTION${RAZ}
${BLEUFONCE}install${RAZ} : ${VERT}Installe${RAZ} Jdownloader.
${BLEUFONCE}link${RAZ} : ${VERT}Charge${RAZ} un/des lien(s) (séparés par un espace) dans Jdownloader.
${BLEUFONCE}start${RAZ} : ${VERT}Lance${RAZ} Jdownloader.
${BLEUFONCE}stop${RAZ} : ${VERT}Arrête${RAZ} Jdownloader.
${BLEUFONCE}update${RAZ} : ${VERT}Met à jour${RAZ} Jdownloader.
${BLEUFONCE}x11${RAZ} : ${VERT}Lance ${RAZ}le système de ${VERT}vpn${RAZ}.\n"
echo "Pour rappel, voici comment marche screen manuellement :
Créer une fenêtre nommée jdownloader : screen -S jdownloader
Lancer le faux serveur X : Xvfb :1
Ouvrir une nouvelle page avec : ctrl + a puis c
Lancer le système de vnc : x11vnc -display :1 -passwd fundownload
Ouvrir une nouvelle page avec : ctrl + a puis c
Lancer jdownloader : DISPLAY=:1 "${jddossier}/JDownloader.jar"
Pour se détacher la fenêtre : ctrl + a puis d
Pour se balader dans les onglets : ctrl + a puis \"
Pour killer la fenêtre : ctrl + a puis k
Pour récupérer la fenêtre jdownloader : screen -r jdownloader"
exit 1
;;
esac
exit 0
Il faut le rendre executable :
chmod +x /etc/init.d/jdownloader
et l'activer tout de suite :
update-rc.d jdownloader defaults
Celui-ci s'utilise de la façon suivante :
service jdownloader
ACTION
install : Installe Jdownloader.
link : Charge un/des lien(s) (séparés par un espace) dans Jdownloader.
start : Lance Jdownloader.
stop: Arrête Jdownloader.
update : Met à jour Jdownloader.
x11 : Lance le système de vpn et jdownloader s'il ne l'est pas déjà
3e étape :
Installer JDownloader via le script ci-dessus, pour cela il faut simplement lancer le service :
service jdownloader install
4e étape :
Lancer JDownloader via le script ci-dessus, pour cela il faut simplement lancer le service :
service jdownloader start
Pour utiliser le service vpn avec :
service jdownloader x11
5e étape facultative
Connexion au serveur via un
client vnc.
jdownloader doit apparaître sur le client VNC et peut être configuré. (perso je n'ai pas la bordure des fenêtres.)
Il est possible d'utiliser jdownloader ainsi mais il est plus pratique d'utiliser le module d'interface web (
Préférences > Gestionnaire des extensions > JD Interface Web).
L'interface web est maintenant modifiable :
- Augmenter le taux de rafraîchissement (genre 30s) ou l’empêcher (l'interface web permet le rafraîchissement via un clic ou via la touche F5)
- Utiliser un login et mot de passe pour se connecter
L'interface est maintenant joignable à l'adresse de votre serveur suivit du port de connexion choisi via votre navigateur, ex :
http://125.255.256.142:8765
http://mon-super-site.fr:8765
Hésitez pas à me faire des retours 😉