4 votes

Le terminal MacOS se bloque à l'ouverture de session

Sur mon Macbook, j'ai constaté que parfois il ne peut pas ouvrir un nouveau terminal - une fenêtre de terminal vide apparaît et il se bloque. Le redémarrage résout ce problème, mais il semble qu'il se reproduise au bout d'une semaine environ.

Le moniteur d'activité révèle que login est en cours d'exécution, mais il n'arrive jamais à zsh en tant que processus enfant. Si je laisse un terminal ouvert, ce terminal est toujours utilisable.

Je peux ouvrir un terminal bash sur un programme différent, et dans ce cas le système se bloque si j'exécute login , zsh ou, de manière intéressante, lorsque je lance ls /dev/tty* .

Même en tapant ls /dev/tty et le fait d'appuyer sur la touche tabulation pour la complétion automatique fait que le terminal se bloque et devient inutilisable.

Lorsque ces processus se bloquent, le terminal est inutile - CTRL-C ne les arrête pas.

Je pense que l'accès à /dev/ttys00* est bloqué. Il a peut-être des difficultés à allouer un pseudo-tty ? Je ne pense pas qu'il soit à court de ptys disponibles parce que w ne montre qu'une ou deux ouvertures.

Voici une partie du résultat de sample suggérant qu'il s'accroche lstat :

Call graph:
    2893 Thread_2786263   DispatchQueue_1: com.apple.main-thread  (serial)
      2893 start  (in libdyld.dylib) + 1  [0x7fff5f9c43d5]
        2893 ???  (in login)  load address 0x105e34000 + 0x17b0  [0x105e357b0]
          2893 ttyname  (in libsystem_c.dylib) + 158  [0x7fff5fa3ba19]
            2893 ttyname_r  (in libsystem_c.dylib) + 146  [0x7fff5fa3baff]
              2893 devname_r  (in libsystem_c.dylib) + 175  [0x7fff5fa10e4d]
                2893 lstat$INODE64  (in libsystem_kernel.dylib) + 10  [0x7fff5fafba0e]

Des idées ?

2voto

J'avais la même trace de pile et tuer nvim dans le moniteur d'activité a débloqué tous les processus de connexion. Je ne sais pas pourquoi cela a fonctionné, nvim était déjà orphelin et n'aurait pas dû tourner de toute façon.

Je suppose que le programme incriminé est probablement différent pour chacun d'entre nous, donc si vous n'utilisez pas nvim, cherchez simplement une application de terminal orpheline dans le moniteur d'activité.

0 votes

Incroyable Merci ! Pour moi, il s'agissait de quatre cas de java . Pour trouver lequel il s'agit, triez vos processus par temps CPU et recherchez les processus terminaux avec le temps CPU le plus élevé pour trouver celui qui n'a jamais été tué correctement.

LesApples.com

LesApples est une communauté de Apple où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres utilisateurs d'appareils Apple, poser vos propres questions ou résoudre celles des autres.

Powered by:

X