Précédent   Forum des professionnels en informatique > Systèmes > Linux > Applications
Applications Questions sur l'utilisation d'applications, du shell, et des interfaces graphiques (KDE, Gnome, XFCE... )
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 25/05/2006, 21h38   #1
Invité régulier
 
Inscription : mars 2006
Messages : 18
Détails du profil
Informations personnelles :
Localisation : France

Informations forums :
Inscription : mars 2006
Messages : 18
Points : 5
Points : 5
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)
asterogyre est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 26/05/2006, 10h42   #2
HNT
Membre confirmé
 
Avatar de HNT
 
Étudiant
Inscription : juin 2005
Messages : 448
Détails du profil
Informations personnelles :
Âge : 24
Localisation : Belgique

Informations professionnelles :
Activité : Étudiant

Informations forums :
Inscription : juin 2005
Messages : 448
Points : 256
Points : 256
Envoyer un message via MSN à HNT
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
__________________
The box said : "Requires windows 95, NT or better" so I installed Linux.
HNT est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 26/05/2006, 10h56   #3
Membre confirmé
 
Inscription : octobre 2005
Messages : 344
Détails du profil
Informations forums :
Inscription : octobre 2005
Messages : 344
Points : 270
Points : 270
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)
usf70 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 26/05/2006, 23h09   #4
Invité régulier
 
Inscription : mars 2006
Messages : 18
Détails du profil
Informations personnelles :
Localisation : France

Informations forums :
Inscription : mars 2006
Messages : 18
Points : 5
Points : 5
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)
asterogyre est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 27/05/2006, 07h53   #5
Rédacteur
 
Inscription : mars 2004
Messages : 1 298
Détails du profil
Informations forums :
Inscription : mars 2004
Messages : 1 298
Points : 1 450
Points : 1 450
etant donner que les fichiers dans l init sont lancé par le root, tu peut tres bien lancer ton application comme suit :
Code :
1
2
 
su - mon_utilisateur -c /repertoire/ma_commande
__________________
Marc
Slackware for ever ......
BASH - KSH ( http://marcg.developpez.com/ksh/ )
MarcG est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 27/05/2006, 12h11   #6
HNT
Membre confirmé
 
Avatar de HNT
 
Étudiant
Inscription : juin 2005
Messages : 448
Détails du profil
Informations personnelles :
Âge : 24
Localisation : Belgique

Informations professionnelles :
Activité : Étudiant

Informations forums :
Inscription : juin 2005
Messages : 448
Points : 256
Points : 256
Envoyer un message via MSN à HNT
Je confirme, tu taê ça dans l'entête de ton script et il s'éxecutera avec les droits de cet utilisateur.
__________________
The box said : "Requires windows 95, NT or better" so I installed Linux.
HNT est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 12h24.


 
 
 
 
Partenaires

Hébergement Web