IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Applications et environnements graphiques Discussion :

Lancer programme utilisateur au boot de Linux


Sujet :

Applications et environnements graphiques

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Homme Profil pro
    ʌǝp
    Inscrit en
    Mars 2006
    Messages
    22
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : ʌǝp

    Informations forums :
    Inscription : Mars 2006
    Messages : 22
    Par défaut Lancer programme utilisateur au boot de Linux
    Salut,
    Comment peut-on s'y prendre pour lancer automatiquement un programme au démarrage de Linux, sous compte utilisateur, sans besoin de se connecter ? (en fait plus précisément il s'agit d'une appli Java lancée par un script shell)

  2. #2
    HNT
    HNT est déconnecté
    Membre éclairé Avatar de HNT
    Profil pro
    Étudiant
    Inscrit en
    Juin 2005
    Messages
    448
    Détails du profil
    Informations personnelles :
    Âge : 37
    Localisation : Belgique

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Juin 2005
    Messages : 448
    Par défaut
    Bon en fait sur une distribution linux tu as une notion de runlevel qui défini l'état dans lequel se trouve la machine. Les runlevels vont de 0 à 6.
    0 : arret
    1 : mode mono-user (maintenance)
    2 : mode mutli-user sans reseau
    3 : mode multi-user avec reseau
    4 : non utilisé par défaut
    5 : mode avec serveur x lancé
    6 : redémarrage

    Ce qu'il faut savoir c'est que pour passer au runlevel 5, ton ordinateur est obligé de passé par le 1,2,3,4 et pour repasser du 5 au 3 il doit faire 5,4,3.

    Le repertoire /etc/init.d contient tout les scripts de tout les runlevels. Ce qu'il faut lancé est défini dans un repertoire /etc/rc_unnuméro.d. Dans ces repertoires rc tu ne trouve que des liens symboliques vers des scripts de /etc/init.d. Donc quand tu démmarre ben il va éxécuté tout ce qui se trouve dans le 1 puis le 2 ...
    Moi sous Debian on m'as conseillé de mettre mes liens dans le rc2.

    Encore une chose que tu dois savoir, ton lien doit avoir une syntaxe particulière. Pour que la machine le lance il doit commencer par S suivis d'un nombre, tu constatera que tout les autres lien des repertoires commencent soit par un S soit par un K, le K c'est pour les services qu'il faut arreter quand tu redescend de runlevel (exemple tu passe du 5 au 2)

    Lorsque ton script qui est placé dans /etc/init.d sera appelé, il le sera avec le paramètre start si c'est le lien S qui a été utilisé ou le paramètre stop si c'est celui avec le K qui a été utilisé.

    Ce que tu place dans /etc/init.d sera bien sur ton script shell

  3. #3
    Membre expérimenté
    Inscrit en
    Octobre 2005
    Messages
    344
    Détails du profil
    Informations forums :
    Inscription : Octobre 2005
    Messages : 344
    Par défaut
    La meilleure méthode est celle décrite par HNT (utiliser des scripts dans /etc/init.d et les lancer dans les /etc/rcxxxx). Une autre méthode un peu moins conventionnelle et moins "propre" serait d'utiliser le fichier /etc/rc.local qui peut être utilisé pour démarrer des services additionnels, et qui est un des fichiers de démarrage qui est lu pratiquement en dernier (après les inittab et rc.xx)

  4. #4
    Membre averti
    Homme Profil pro
    ʌǝp
    Inscrit en
    Mars 2006
    Messages
    22
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : ʌǝp

    Informations forums :
    Inscription : Mars 2006
    Messages : 22
    Par défaut Lancement sous compte utilisateur
    Ok merci pour les infos détaillés et les différentes options. Je me trompe peut-etre mais à priori dans ces deux cas, le script serait lancé sous compte root. Quel serait le meilleur moyen de le lancer sous compte utilisateur, sans meme que l'utilisateur soit connecté ? (par exemple via su/sudo ? l'intéret étant que le programme lancé ne puisse pas aller toucher à des fichiers système par erreur)

  5. #5
    Membre Expert

    Profil pro
    Inscrit en
    Mars 2004
    Messages
    1 296
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2004
    Messages : 1 296
    Par défaut
    etant donner que les fichiers dans l init sont lancé par le root, tu peut tres bien lancer ton application comme suit :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    su - mon_utilisateur -c /repertoire/ma_commande

  6. #6
    HNT
    HNT est déconnecté
    Membre éclairé Avatar de HNT
    Profil pro
    Étudiant
    Inscrit en
    Juin 2005
    Messages
    448
    Détails du profil
    Informations personnelles :
    Âge : 37
    Localisation : Belgique

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Juin 2005
    Messages : 448
    Par défaut
    Je confirme, tu taê ça dans l'entête de ton script et il s'éxecutera avec les droits de cet utilisateur.

Discussions similaires

  1. Lancer un programme lors du boot
    Par Empounet dans le forum Debian
    Réponses: 1
    Dernier message: 29/05/2015, 05h08
  2. Lancer une VM au boot de Linux
    Par il_a_ri dans le forum Administration système
    Réponses: 9
    Dernier message: 07/11/2011, 14h29
  3. Réponses: 4
    Dernier message: 27/06/2011, 16h30
  4. [Système] Lancer l'invite de commande sous Linux ?
    Par haffouff dans le forum Langage
    Réponses: 3
    Dernier message: 19/05/2006, 07h38
  5. Quel type de programme manque-t-il à linux ?
    Par wikers dans le forum Linux
    Réponses: 3
    Dernier message: 20/04/2006, 13h44

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo