Contenu | Rechercher | Menus

Annonce

Si vous rencontrez des soucis à rester connecté sur le forum (ou si vous avez perdu votre mot de passe) déconnectez-vous et reconnectez-vous depuis cette page, en cochant la case "Me connecter automatiquement lors de mes prochaines visites".
Test de l'ISO d'Ubuntu francophone : nous avons besoin de testeurs pour la version francophone d'Ubuntu 14.04. Liens et informations ici.

Attention, une faille de sécurité dans bash a récemment été rapportée, il est recommandé de mettre à jour son système (plus de détails)

#1 Le 08/10/2013, à 01:21

Hizoka

[Tuto] Installer jdownloader sur un serveur

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-1 … t-via-vnc/
http://blog.is-a-geek.org/jdownloader-h … rver-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 wink

Dernière modification par Hizoka (Le 15/10/2013, à 10:08)

Hors ligne

#2 Le 08/10/2013, à 19:02

Hizoka

Re : [Tuto] Installer jdownloader sur un serveur

Par contre quelques questions :
- Quelqu'un sait il comment faire pour modifier vraiment la resolution du fux serveur x et permettre d'avoir le contour des fenetres ? Ou cela vient-il du systeme de vpn ?
- L'interface web de jdownloader ne fonctionne pas pour l'envoie de nouvelles adresse, est-ce votre cas aussi ?  ou cela vient il du port utilisé par defaut qui ne permet pas l'envoie de donnée ?

Hors ligne

#3 Le 19/02/2014, à 02:36

didgerifou

Re : [Tuto] Installer jdownloader sur un serveur

Ce script à l'air génial. Je l'ai installé sur un serveur en ssh mais je n'arrive pas à me connecter en vnc...
Une fois l'installation effectuée complètement sur le serveur, j'ai seulement besoin d’exécuter la commande

service jdownloader x11

Sur un pc distant, quel paramètre faut il indiquer pour ce connecter sur le serveur en VNC ? Le port par défaut est le 5900 ?
Merci encore pour ce script.

Hors ligne

#4 Le 19/02/2014, à 10:50

Hizoka

Re : [Tuto] Installer jdownloader sur un serveur

Salut,

tu as bien installer les paquets indiqués au début du tuto ?

Pour la connexion je sais que certains logiciels ne marchaient pas... mais je ne sais plus trop lequel passé bien...

Pour le port, je ne sais plus lequel est utilisé par défaut (perso je ne l'avais pas changé), il est surement modifiable dans x11vnc de la commande :

screen -AmdS x11vnc x11vnc -display :1 -passwd "${mdp}"

Utilises tu un firewall sur ton serveur ? car il faut penser à ouvrir le port.

Il faut que je reteste...

Hors ligne

#5 Le 19/02/2014, à 16:17

didgerifou

Re : [Tuto] Installer jdownloader sur un serveur

Salut,

J'ai résolu le problème.
Le problème se situait au niveau de l'installation de jdownloader. Apparemment, le fichier de lancement de jdownloader JDownloader.jar ne s'installe plus dans le répertoire par défaut ${jddossier}/ mais dans le répertoire

${jddossier}/update/
${jddossier}/update/JDownloader.jar

Jdownloader ne pouvant se lancer, les étapes suivantes étaient zappées.

J'ai modifié le code de ton script pour corriger ce problème ainsi que modifier la fonction (qui n'en est pas vraiment une) STOP qui arrêtait 2 fois le même procéssus (xvfb)

#!/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 VNC
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}/update/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}/update/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}/update/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}/update/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 x11vnc lancé via screen
            if [[ $(ps ax | grep -i "SCREEN -AmdS x11vnc" | grep -v "grep") ]]
            then
                echo -e "\n${VERT}Arrêt${RAZ} de l'instance de x11vnc 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}/update/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 x11vnc" | 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}/update/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

Merci pour le script !

Hors ligne

#6 Le 19/02/2014, à 17:45

Hizoka

Re : [Tuto] Installer jdownloader sur un serveur

cool que ca serve à d'autre.

merci pour l'evolution du script.

Hors ligne

#7 Le 19/02/2014, à 18:57

didgerifou

Re : [Tuto] Installer jdownloader sur un serveur

re,
Mise à jour du script, il manquait le lancement de xvdf pour le lancement de la partie START 

#!/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 VNC
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}/update/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}/update/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}/update/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}/update/JDownloader.jar"
            DISPLAY="${old_DISPLAY}"

			 # 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


			
            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 x11vnc lancé via screen
            if [[ $(ps ax | grep -i "SCREEN -AmdS x11vnc" | grep -v "grep") ]]
            then
                echo -e "\n${VERT}Arrêt${RAZ} de l'instance de x11vnc en cours..."
                screen -S x11vnc -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}/update/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 x11vnc" | 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}VNC${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}/update/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

Commande pour lancer le service en mode START au demarrage du serveur :

 update-rc.d jdownloader start 10 2 3 4 5 . stop 10 0 1 6 .

Pour le retirer :

update-rc.d -f jdownloader remove

Hors ligne

#8 Le 19/02/2014, à 19:21

Hizoka

Re : [Tuto] Installer jdownloader sur un serveur

A quoi sert la suite de chiffre dans le code de lancement ?

Hors ligne

#9 Le 20/02/2014, à 11:24

didgerifou

Re : [Tuto] Installer jdownloader sur un serveur

je suis loin d'être un expert en linux, j'ai peut être fait une erreur mais d'après ce que j'ai pu lire :

 update-rc.d jdownloader start  XX Y Y Y Y . stop XX Y Y Y .

XX : la priorité dans le lancement du service
Y : le run level

Les autres 2 3 4 5 sont des levels qui diffèrent d'un Os à un autre.

Sur mon serveur, je suis en run level 2 par exemple.

Infos récupérés sur wikipédia :

Les run levels ne sont pas tous normalisés, en général la signification suivante est adoptée :

    0 : Arrêt
    1 : Mode mono-utilisateur ou maintenance
    2 à 5 : dépend du système d'exploitation
    6 : Redémarrage

Le niveau 2 peut correspondre à un mode multi-utilisateur sans serveur applicatif.
Le niveau 3 correspond alors à un environnement multi-utilisateur avec serveurs applicatifs.
Le niveau 4 ou 5 est parfois utilisé pour lancer l'environnement graphique.

Chez moi ca fonctionne bien wink

Hors ligne

#10 Le 23/04/2014, à 13:52

Xiduis12

Re : [Tuto] Installer jdownloader sur un serveur

Bonjour, je viens de lire et suivre ce très bon topic car je suis intéressé par mettre un jdownloader sur mon serveur et de le piloter sans serveur X.
J'ai installé les package xvfb x11vnc et screen. J'ai récupéré le script mis à jour par didgerifou.
Je travaille sur le distrib suivante :

bintou@dedeserv:~$ uname -a
Linux dedeserv 3.13.0-24-generic #46-Ubuntu SMP Thu Apr 10 19:11:08 UTC 2014 x86_64 x86_64 x86_64 GNU/Linux

J'ai installé la dernière version java avec le package oracle :

bintou@dedeserv:~$ java -version
java version "1.7.0_55"
Java(TM) SE Runtime Environment (build 1.7.0_55-b13)
Java HotSpot(TM) 64-Bit Server VM (build 24.55-b03, mixed mode)

Mais voilà ce qui se passe lorsque je lance l'installation via la commande service jdownloader install :

root@dedeserv:~# service jdownloader install

Téléchargement du logiciel.
Installation du logiciel.
JAR
00s.025 - FINEST [jd.utils.JDUtilities(getJDClassLoader)] -> Create Classloader: for: /zos2/jdownload
00s.046 - FINEST [jd.JDClassLoader(<init>)] -> rootDir:/zos2/jdownload
/zos2/jdownload
 null
00s.329 - FINER [jd.config.DatabaseConnector(<init>)] -> Loading database
01s.502 - WARNING [jd.config.DatabaseConnector(getData)] -> Database not available. Create new one: WEBUPDATE
01s.503 - FINEST [jd.controlling.JDLogger(exception)] -> FINEST Exception occurred
java.sql.SQLException: Table not found in statement [SELECT * FROM config]
        at org.hsqldb.jdbc.Util.sqlException(Unknown Source)
        at org.hsqldb.jdbc.jdbcStatement.fetchResult(Unknown Source)
        at org.hsqldb.jdbc.jdbcStatement.executeQuery(Unknown Source)
        at jd.config.DatabaseConnector.getData(DatabaseConnector.java:216)
        at jd.config.SubConfiguration.<init>(SubConfiguration.java:77)
        at jd.config.SubConfiguration.getConfig(SubConfiguration.java:106)
        at jd.update.WebUpdater.getConfig(WebUpdater.java:74)
        at jd.update.Main.main(Main.java:121)
First save WEBUPDATE
01s.520 - WARNING [jd.config.DatabaseConnector(saveConfiguration)] -> Database save error: WEBUPDATE
01s.521 - FINEST [jd.controlling.JDLogger(exception)] -> FINEST Exception occurred
java.sql.SQLException: Table not found in statement [INSERT INTO config VALUES (?,?)]
        at org.hsqldb.jdbc.Util.throwError(Unknown Source)
        at org.hsqldb.jdbc.jdbcPreparedStatement.<init>(Unknown Source)
        at org.hsqldb.jdbc.jdbcConnection.prepareStatement(Unknown Source)
        at jd.config.DatabaseConnector.saveConfiguration(DatabaseConnector.java:285)
        at jd.config.SubConfiguration.save(SubConfiguration.java:87)
        at jd.config.SubConfiguration.getConfig(SubConfiguration.java:109)
        at jd.update.WebUpdater.getConfig(WebUpdater.java:74)
        at jd.update.Main.main(Main.java:121)
/zos2/jdownload/config/WEBUPDATE.cfg (Aucun fichier ou dossier de ce type)
First save WEBUPDATE
01s.543 - WARNING [jd.config.DatabaseConnector(saveConfiguration)] -> Database save error: WEBUPDATE
01s.543 - FINEST [jd.controlling.JDLogger(exception)] -> FINEST Exception occurred
java.sql.SQLException: Table not found in statement [INSERT INTO config VALUES (?,?)]
        at org.hsqldb.jdbc.Util.throwError(Unknown Source)
        at org.hsqldb.jdbc.jdbcPreparedStatement.<init>(Unknown Source)
        at org.hsqldb.jdbc.jdbcConnection.prepareStatement(Unknown Source)
        at jd.config.DatabaseConnector.saveConfiguration(DatabaseConnector.java:285)
        at jd.config.SubConfiguration.save(SubConfiguration.java:87)
        at jd.update.WebUpdater.getConfig(WebUpdater.java:81)
        at jd.update.Main.main(Main.java:121)
First save WEBUPDATE
01s.548 - WARNING [jd.config.DatabaseConnector(saveConfiguration)] -> Database save error: WEBUPDATE
01s.548 - FINEST [jd.controlling.JDLogger(exception)] -> FINEST Exception occurred
java.sql.SQLException: Table not found in statement [INSERT INTO config VALUES (?,?)]
        at org.hsqldb.jdbc.Util.throwError(Unknown Source)
        at org.hsqldb.jdbc.jdbcPreparedStatement.<init>(Unknown Source)
        at org.hsqldb.jdbc.jdbcConnection.prepareStatement(Unknown Source)
        at jd.config.DatabaseConnector.saveConfiguration(DatabaseConnector.java:285)
        at jd.config.SubConfiguration.save(SubConfiguration.java:87)
        at jd.update.WebUpdater.getConfig(WebUpdater.java:81)
        at jd.update.Main.main(Main.java:124)
First save WEBUPDATE
01s.551 - WARNING [jd.config.DatabaseConnector(saveConfiguration)] -> Database save error: WEBUPDATE
01s.552 - FINEST [jd.controlling.JDLogger(exception)] -> FINEST Exception occurred
java.sql.SQLException: Table not found in statement [INSERT INTO config VALUES (?,?)]
        at org.hsqldb.jdbc.Util.throwError(Unknown Source)
        at org.hsqldb.jdbc.jdbcPreparedStatement.<init>(Unknown Source)
        at org.hsqldb.jdbc.jdbcConnection.prepareStatement(Unknown Source)
        at jd.config.DatabaseConnector.saveConfiguration(DatabaseConnector.java:285)
        at jd.config.SubConfiguration.save(SubConfiguration.java:87)
        at jd.update.WebUpdater.getConfig(WebUpdater.java:81)
        at jd.update.Main.main(Main.java:125)
{}

01s.554 - WARNING [jd.config.DatabaseConnector(getData)] -> Database not available. Create new one: PACKAGEMANAGER
01s.555 - FINEST [jd.controlling.JDLogger(exception)] -> FINEST Exception occurred
java.sql.SQLException: Table not found in statement [SELECT * FROM config]
        at org.hsqldb.jdbc.Util.sqlException(Unknown Source)
        at org.hsqldb.jdbc.jdbcStatement.fetchResult(Unknown Source)
        at org.hsqldb.jdbc.jdbcStatement.executeQuery(Unknown Source)
        at jd.config.DatabaseConnector.getData(DatabaseConnector.java:216)
        at jd.config.SubConfiguration.<init>(SubConfiguration.java:77)
        at jd.config.SubConfiguration.getConfig(SubConfiguration.java:106)
        at jd.update.WebUpdater.getConfig(WebUpdater.java:74)
        at jd.update.Main.main(Main.java:126)
First save PACKAGEMANAGER
01s.558 - WARNING [jd.config.DatabaseConnector(saveConfiguration)] -> Database save error: PACKAGEMANAGER
01s.559 - FINEST [jd.controlling.JDLogger(exception)] -> FINEST Exception occurred
java.sql.SQLException: Table not found in statement [INSERT INTO config VALUES (?,?)]
        at org.hsqldb.jdbc.Util.throwError(Unknown Source)
        at org.hsqldb.jdbc.jdbcPreparedStatement.<init>(Unknown Source)
        at org.hsqldb.jdbc.jdbcConnection.prepareStatement(Unknown Source)
        at jd.config.DatabaseConnector.saveConfiguration(DatabaseConnector.java:285)
        at jd.config.SubConfiguration.save(SubConfiguration.java:87)
        at jd.config.SubConfiguration.getConfig(SubConfiguration.java:109)
        at jd.update.WebUpdater.getConfig(WebUpdater.java:74)
        at jd.update.Main.main(Main.java:126)
/zos2/jdownload/config/PACKAGEMANAGER.cfg (Aucun fichier ou dossier de ce type)
First save PACKAGEMANAGER
01s.565 - WARNING [jd.config.DatabaseConnector(saveConfiguration)] -> Database save error: PACKAGEMANAGER
01s.565 - FINEST [jd.controlling.JDLogger(exception)] -> FINEST Exception occurred
java.sql.SQLException: Table not found in statement [INSERT INTO config VALUES (?,?)]
        at org.hsqldb.jdbc.Util.throwError(Unknown Source)
        at org.hsqldb.jdbc.jdbcPreparedStatement.<init>(Unknown Source)
        at org.hsqldb.jdbc.jdbcConnection.prepareStatement(Unknown Source)
        at jd.config.DatabaseConnector.saveConfiguration(DatabaseConnector.java:285)
        at jd.config.SubConfiguration.save(SubConfiguration.java:87)
        at jd.update.WebUpdater.getConfig(WebUpdater.java:81)
        at jd.update.Main.main(Main.java:126)
{}

First save PACKAGEMANAGER
01s.568 - WARNING [jd.config.DatabaseConnector(saveConfiguration)] -> Database save error: PACKAGEMANAGER
01s.569 - FINEST [jd.controlling.JDLogger(exception)] -> FINEST Exception occurred
java.sql.SQLException: Table not found in statement [INSERT INTO config VALUES (?,?)]
        at org.hsqldb.jdbc.Util.throwError(Unknown Source)
        at org.hsqldb.jdbc.jdbcPreparedStatement.<init>(Unknown Source)
        at org.hsqldb.jdbc.jdbcConnection.prepareStatement(Unknown Source)
        at jd.config.DatabaseConnector.saveConfiguration(DatabaseConnector.java:285)
        at jd.config.SubConfiguration.save(SubConfiguration.java:87)
        at jd.update.WebUpdater.getConfig(WebUpdater.java:81)
        at jd.update.Main.main(Main.java:127)
java.awt.HeadlessException:
No X11 DISPLAY variable was set, but this program performed an operation which requires it.
        at java.awt.GraphicsEnvironment.checkHeadless(Unknown Source)
        at java.awt.Window.<init>(Unknown Source)
        at java.awt.Frame.<init>(Unknown Source)
        at java.awt.Frame.<init>(Unknown Source)
        at javax.swing.JFrame.<init>(Unknown Source)
        at jd.update.Main.initGUI(Main.java:459)
        at jd.update.Main.main(Main.java:129)
ERROR
No X11 DISPLAY variable was set, but this program performed an operation which requires it.

Il cherche un serveur X11 mais il n'est pas présent sur mon serveur. Il me semble que c'est le but de topic de faire tourner jdowloader sans serveur X.
Avez vous rencontré ce type de problème? HELP please ! wink

Hors ligne

#11 Le 23/04/2014, à 14:59

didgerifou

Re : [Tuto] Installer jdownloader sur un serveur

salut,

Effectivement, je me suis heurté au même problème que toi. Je ne me souviens plus bien, mais j'ai essayé plusieurs bidouilles mais le résultat n'etait pas satisfaisant, tout ne fonctionnait pas correctement. Pour ces raisons et par manque de temps, j'ai fini par installer un environnement X + gestionnaire de fenêtre. hmm  Je me suis inspiré de ce tuto (étant moi même sous openvz par le biais de la distrib proxmox)  : lien

Dans tous les cas, je te conseille d'installer un openbox ou equivalent, au moins pour l'installation et la configuration de jdownloader, puis de repasser sous le trio "xvfb x11vnc et screen" pour son utilisation en webgui.
Encore faut il résoudre ce problème de display... Personnellement j'avais rencontré des problèmes de fenêtre avec le trio "xvfb x11vnc et screen" qui rendait compliquer la configuration de jdownloader même après avoir changé la résolution de base.

Désolé, mon script de fonctionne pas... Si quelqu'un sait résoudre ce problème de display, je suis preneur.

Hors ligne

#12 Le 05/05/2014, à 09:40

Hizoka

Re : [Tuto] Installer jdownloader sur un serveur

Salut, désolé mais je ne me souviens plus trop en fait...

je sais que j'avais galéré mais qu'avec mon script ca passait pas trop mal...

Hors ligne

Haut de page ↑