Forum Linux.debian/ubuntu comportement étrange en console

Posté par  (site web personnel) .
Étiquettes :
1
10
mar.
2012

Bonjour,
depuis quelques temps, lorsque je me logue en root dans un émulateur de terminal
que ce soit konsole ou xterm ou autre, j'ai le message suivant:

bash: impossible de régler le groupe de processus du terminlal (-1): Ioctl() inappropré pour un périphérique
bash: pas de contrôle de tâche dans ce shell

J'ai essayé de changer l'interpréteur de commande, mais avec dash à la place de bash, j'ai le même comportement mis à part que le message est en anglais.

Quelqu'un aurait-il une idée pour revenir à un comportement normal ?

Ah oui, j'oubliais, je suis sous Debian testing, je sais testing c'est pas stable, mais quand même….
Merci,
Luc

  • # au hazard

    Posté par  . Évalué à 2.

    un paquet supprimé ou mal installé pendant une mise à jour ?
    un mauvais chown ? (pour l'histoire du groupe)

    tu as essayé le message en anglais dans google ?
    ca te donne des reponses ?

    • [^] # Re: au hazard

      Posté par  (site web personnel) . Évalué à 0.

      Sans doute un problème de paquet, mais comment savoir lequel ?
      quant à google, en anglais comme en français, je n'ai rien trouvé de probant.

  • # strace

    Posté par  (site web personnel) . Évalué à 2.

    strace -f le terminal, trouve le syscall/ioctl qui pose problème et en remontant dans l'historique il doit y avoir moyen de voir d'où ça vient.

    pertinent adj. Approprié : qui se rapporte exactement à ce dont il est question.

    • [^] # Re: strace

      Posté par  (site web personnel) . Évalué à 1.

      strace -f konsole …
      su
      password
      echec d'autentification…
      et dans la sortie de strace, je vois à plusieurs reprises:
      ioctl(10, TIOCSCTTY unfinished …)
      ou
      ioctl(0, SNDCTL_TMR_TIMEBASE or TCGETS unfinished …)
      ou
      ioctl(9, TIOCGPGRP unfinished …)

      je suis bien incapable d'en tirer une quelconque conclusion.

      • [^] # Re: strace

        Posté par  . Évalué à 2.

        Apparemment, c'est « bash » qui t'envoie ce message et pas le terminal lui-même. C'est lui qu'il faudrait surveiller, plutôt. En plus, il est probable que ce ne soit pas le shell qui gère ta session qui en soit directement à l'origine, mais plutôt une sous-instance lancée par un script.

        • [^] # Re: strace

          Posté par  (site web personnel) . Évalué à 1.

          alors avec strace -f bash, j'obtiens des résultats très semblable concernant les "ioctl".

          J'ai quand même trouvé deux lignes nouvelles et peut-être intéressantes:
          8294 ioctl(1, SNDCTL_TMR_TIMEBASE or TCGETS, 0x7fff64a755d0) = -1 EINVAL (Invalid argument)

          et
          8348 ioctl(0, SNDCTL_TMR_TIMEBASE or TCGETS, 0x7fff3b654bc0) = -1 EINVAL (Invalid argument)

          • [^] # Re: strace

            Posté par  (site web personnel) . Évalué à 3.

            Faut croire qu'il y a quelque chose qui fait des trucs pas nets avec stdin et stdout avant le TCGETS (genre qui les ferment ?). Est-ce que tu arrives à reproduire le problème avec un programme du genre (à stracer aussi) ?

            #include <termios.h>
            #include <unistd.h>
            #include <stdio.h>
            #include <sys/ioctl.h>
            
            int main(void)
            {
                    struct termios t;
                    printf("%d: %d\n", 0, tcgetattr(0, &t));
                    printf("%d: %d\n", 0, ioctl(0, TCGETS, &t));
                    printf("%d: %d\n", 1, tcgetattr(1, &t));
                    printf("%d: %d\n", 1, ioctl(1, TCGETS, &t));
                    return 0;
            }
            
            

            L'étape suivante, serai d'examiner ce qui arrive avec les file descriptors 0 et 1 avant le premier ioctl() qui fait EINVAL. Le problème peut être (et est sans doute) avant le shell puisqu'il utilise les fds qui lui sont transmis par le terminal normalement.

            pertinent adj. Approprié : qui se rapporte exactement à ce dont il est question.

Suivre le flux des commentaires

Note : les commentaires appartiennent à celles et ceux qui les ont postés. Nous n’en sommes pas responsables.