Démarrer X automatiquement sans gestionnaire de session

Bonjour à tous,

Souhaitant démarrer automatiquement le serveur X mais ne voulant pas installé de gestionnaire de session, j’avais opter pour la solution proposée sur ce sujet. Cependant, cette dernière souffre d’un inconvénient: il est impossible d’utiliser le tty1 sans mettre fin au serveur X et une connexion est établie par défaut sur ce dernier.

J’ai donc chercher une autre solution et je pense désormais l’avoir trouvée :smiley:
La voici:

Dans le fichier /etc/inittab, ajoutez cette ligne:

7:2:once:/usr/bin/xinit /bin/su -lc /etc/X11/Xsession utilisateur 0<> /dev/null >&0 2>&0

Cette solution suppose que “utilisateur” dispose d’un fichier .xsession dans son répertoire personnel (ce fichier est identique au fichier .xinitrc) et que ce dernier se termine par l’exécution de votre gestionnaire de bureau et/ou de fenêtre.

Après quelques recherches et tests (et la découverte de la commande xinit), je me suis rendu compte que mon script était inutilement long :whistle:
J’ai donc modifier mon script pour qu’il utilise la commande xinit :wink:

salut,

moi j’ai installé le paquet nodm puis édité /etc/default/nodm.

Intéressant, je ne connaissais pas l’existence de ce mini gestionnaire de session.
Cependant, je viens de le tester, et il ne semble pas prendre en compte le fichier .xinitrc de mon utilisateur… De plus, lorsque le serveur X est tué, il le relance automatiquement, ce qui n’est personnellement pas le comportement que j’attends :wink:

Je viens de remarquer un phénomène étrange avec mon script: je ne sais pas imprimer depuis xpdf, les impressions ne sont pas ajouter à la file d’attente alors que c’est le cas si le serveur X est lancé via la commande startx :108
Si quelqu’un a une explication je suis preneur :whistle:

perso je fais encore plus simple (pas testé le paquet nodm non plus)

dans mon /etc/rc.local :

J’utilisais cette solution avant de recourir à celle consistant à se connecter automatiquement. Cependant, je viens de la réessayer et cela ne fonctionne pas chez moi à cause du Xwrapper; qui interdit de lancer le serveur X si on est pas root ou connecté à un tty (je sais qu’il est possible de le modifier, mais je préfère le laisser ainsi). De plus, dans le cas où l’on prévoit le lancement du serveur X dans le script rc.local, ce dernier est bloquer jusqu’à la fin du serveur X ce qui empêche l’accès aux tty.

Sinon j’ai avancé un peu dans mes recherches, apparemment le problème disparaît si j’utilise le script /etc/X11/Xsession. Je posterai une correction si tout fonctionne bien :wink:

Yop,

Me revoilà avec une solution visiblement sans problème et nettement plus courte. Comme je l’ai précisé juste au-dessus, elle s’appuie sur le script /etc/X11/Xsession :wink:

Ta solution est bien la ligne cité dan ton premier post ? Si oui, dit le clairement dasn tes réponses.
Sinon tu pourrais nous expliciter ta commande, la décomposer pour savoir ce que fai chaque partie. :smiley:

[ul]
[li]7 : numéro de tty[/li]
[li]2 : runlevel (voir les runlevel d'init)[/li]
[li]once : action à faire (une seule fois en l'occurrence, il peut le relancer à chaque fois qu'il arrête ou autre)[/li]
[li]/usr/bin/xinit /bin/su -lc /etc/X11/Xsession utilisateur 0<> /dev/null >&0 2>&0 : commande à exécuter (en l'occurrence c'est (en tout cas ça semble) être le système standard de Debian (c'est à dire ce qu'exécute gdm, kdm ou xdm sur Debian)).[/li][/ul]

Vous voulais en savoir plus ?
[code]man inittab[/code]

[ul]
[li]7 : numéro de tty[/li]
[li]2 : runlevel (voir les runlevel d’init)[/li]
[li]once : action à faire (une seule fois en l’occurrence, il peut le relancer à chaque fois qu’il arrête ou autre)[/li]
[li]/usr/bin/xinit /bin/su -lc /etc/X11/Xsession utilisateur 0<> /dev/null >&0 2>&0 : commande à exécuter (en l’occurrence c’est (en tout cas ça semble) être le système standard de Debian (c’est à dire ce qu’exécute gdm, kdm ou xdm sur Debian)).[/li][/ul]

Vous voulais en savoir plus ?

[quote=“Mimoza”]
Ta solution est bien la ligne cité dan ton premier post ? Si oui, dit le clairement dasn tes réponses.
Sinon tu pourrais nous expliciter ta commande, la décomposer pour savoir ce que fai chaque partie. :smiley:[/quote]

Oui, c’est bien la solution du premier poste, je l’ai édité en conséquence.
Pour l’explication, je pense que MisterFreez a tout dit :wink:

Salut,

Je voulais juste mentionner que cette astuce m’a permis de contourner un souci au lancement de xmbc-standalone, installe par dessus une debian initialement installée mode console. (Mon serveur NFS est desormais aussi un boitier multimedia).

Le souci d’origine:
Le lancement avec cette ligne (Inclue dans un script commun sur le net)

Dans ce cas, l’interface était tout particulièrement lente.

Par contre, avec manuellement dans une console

startx xbmc-standalone
Aucune souci de performance!

Du coup mon work-around cracra:

case "$1" in
  start)
        echo Starting $DESC
        #start-stop-daemon --start -c $RUN_AS --background --pidfile $PID_FILE  --make-pidfile --exec $DAEMON -- $DAEMON_OPTS
        /usr/bin/xinit /bin/su -lc /etc/X11/Xsession xbmc 0<> /dev/null >&0 2>&0 &
        ;;
  stop)
        echo Stopping $DESC
        #start-stop-daemon --stop --pidfile $PID_FILE
        pkill -KILL -u xbmc
        ;;

Avec dans ~xbmc/.bashrc:

xbmc-standalone logout
En espérant que ce soit utile a quelqu’un d’autre!