J'ai un problème étrange sur mon nouveau MacBook Pro (fin 2016, avec Touch Bar).
Tout fonctionne bien et puis, après l'avoir utilisé un moment, l'ouverture de nouvelles fenêtres de Terminal ne fonctionne pas car login
se bloque. Le redémarrage résout le problème.
Cela semble être un problème que d'autres personnes ont rencontré, donc j'ai déjà essayé toutes leurs solutions (de 1 et [2]) :
- Supprimer
~/Library/Preferences/com.apple.Terminal.plist
- Définir mon shell par défaut sur un autre shell (de
/bin/zsh
à/bin/sh
ou/bin/bash
) - Supprimer ou nettoyer mon
.profile
,.zprofile
, ... Cela ne fonctionne pas et je peux valider que le problème survient avant même que le shell soit invoqué, car si j'ajouteecho HEY
comme première ligne de mon.zshenv
, cela n'est même pas atteint. Ce doit êtrelogin
qui pose problème. Modifier/etc/profile
pour ajouter un echo en haut ne montre rien - Changer le paramètre
Exécuter la commande :
dans ma configuration de Terminal pour quelque chose commeecho foo
ne fonctionne pas non plus (cocher ou décocherExécuter à l'intérieur du shell
ne change rien).
Autres notes :
- Comme mentionné dans [2],
ssh-add -K
ne conserve pas les clés entre les redémarrages, quelque chose que je n'avais jamais eu de problèmes auparavant. - La console ne montre aucun erreur ou avertissement suspect.
- Ouvrir une nouvelle fenêtre de
Terminal
semble créer un fichier tty (/dev/ttys
). - Quand cela se produit, cela n'a pas d'importance si j'utilise Terminal.app ou iTerm.app
- J'ai une installation plutôt propre (je viens de recevoir mon ordinateur portable, je n'ai pas restauré de sauvegardes, juste installé quelques applications avec
brew install
etbrew cask install
).
C'est vraiment difficile à déboguer car je ne peux pas le reproduire et souvent je ne peux pas ouvrir un nouveau terminal pour essayer même de comprendre ce qui se passe.
Est-ce que quelqu'un a des conseils?
Mise à jour :
En utilisant iTerm, j'ai réussi à obtenir un shell en définissant la commande de démarrage sur /bin/bash
. Dans ce shell, cependant, sudo
ne fonctionne pas. Il se bloque (sans afficher le prompt) et ctrl-C
et ctrl-D
ne fonctionnent pas quand il se bloque.
L'utilisation de certaines autres applications ne fonctionne pas dans ce shell : node
ou /usr/local/bin/node
restent bloqués. Autant que je puisse le dire, ce sont des programmes qui se trouvent dans /usr/local/bin
.
Mise à jour 2 :
brew list --full-name
donne ces paquets :
autoconf
automake
blueutil
boost
cabal-install
cairo
cfssl
cmake
coreutils
doxygen
editorconfig
erlang
ffind
ffmpeg
flow
fontconfig
fontforge
freetype
gdbm
gettext
ghc
git
glib
go
gobject-introspection
graphicsmagick
harfbuzz
haskell-stack
highlight
icu4c
influxdb
jemalloc
jpeg
keybase
lame
libevent
libffi
libpng
libtermkey
libtiff
libtool
libuv
libvterm
libxml2
lua
mongodb
msgpack
nginx
node
openssl
openssl@1.1
pango
pcre
pixman
pkg-config
postgresql
protobuf
python
python3
rabbitmq
readline
reattach-to-user-namespace
redis
sqlite
the_silver_searcher
thefuck
tmux
unibilium
unixodbc
wxmac
x264
xvid
xz
yarn
z
zsh
josegonzalez/php/php54
neovim/neovim/neovim
Mise à jour 3 :
Ces points correspondent à la réponse de @Monomeeth :
-
Quand cela se produit, un élément
login
apparaît dans le moniteur d'activité. (Forcer) Quitter le ferme également la fenêtre Terminal qui était bloquée. Fermer manuellement la fenêtre ne fait pas disparaître le processuslogin
dans le moniteur d'activité. -
Le titre du terminal est
Terminal — login — term big — ttys001 — 89x18 — 1
, oùterm big
est le nom des paramètres. -
Aucun processus
sudo
n'apparaît dans le moniteur d'activité. Je peux créer un processussudo
en ouvrant iTerm.app (qui utilise bash) et en exécutantsudo echo ok
là-bas. Il ne peut pas être fermé, mais Forcer à quitter fonctionne et le tue :bash-3.2$ sudo echo ok Killed: 9
Mise à jour 4 :
Quand cela se produit, exécuter login
depuis un shell toujours disponible fonctionne, tandis que le login
dans les nouveaux shells semble se bloquer.
Mise à jour 5 :
J'ai récemment acquis un nouvel ordinateur portable (MacBook Pro 2017, sans Touch Bar) et le problème persiste.
J'ai également changé de shell : j'utilise maintenant fish
avec une configuration assez basique. Je pense que cela exclut le shell comme étant le coupable.
Le système d'exploitation a aussi été mis à jour en 10.13.3 (17D47) High Sierra.
J'ai essayé d'installer le moins possible sur cette machine :
brew list —-full-names
coreutils 8.29
dnsmasq 2.78
faac 1.29.9.2
fdk-aac 0.1.5
ffmpeg 3.4.1
fish 2.7.1
freetype 2.9
gdbm 1.14.1_1
gettext 0.19.8.1
git 2.16.1
highlight 3.42
htop 2.0.2_2
icu4c 60.2
imagemagick 7.0.7-22
jemalloc 5.0.1
jpeg 9b
lame 3.100
libav 12.2
libogg 1.3.3
libpng 1.6.34
libtermkey 0.20
libtiff 4.0.9_1
libtool 2.4.6_1
libuv 1.19.1
libvorbis 1.3.5_1
libvpx 1.7.0
libvterm 681
libyaml 0.1.7
lua 5.3.4_2
luajit 2.0.5
mongodb 3.6.2
msgpack 2.1.5
neovim 0.2.2
node 9.5.0
openssl 1.0.2n
opus 1.2.1
parallel 20180122
pcre 8.41
pcre2 10.30
postgresql 10.2
python 2.7.14_3
python3 3.6.4_2
readline 7.0.3_1
ripgrep 0.7.1
ruby 2.5.0
sqlite 3.22.0
the_silver_searcher 2.1.0
thefuck 3.25_1
unibilium 1.2.1
x264 r2795
xvid 1.3.5
xz 5.2.3
youtube-dl 2018.02.08
Je ne sais pas ce que cela peut être maintenant. Les seules applications auxquelles je peux penser sont Divvy
ou Apptivate
car elles semblent toutes deux obsolètes. Voici l'intersection de ce qui était installé sur l'ancien vs le nouveau machine:
coreutils
ffmpeg
freetype
gdbm
gettext
git
highlight
icu4c
jemalloc
jpeg
lame
libpng
libtermkey
libtiff
libtool
libuv
libvterm
lua
mongodb
msgpack
node
openssl
pcre
postgresql
python
python3
readline
sqlite
the_silver_searcher
thefuck
unibilium
x264
xvid
xz
Mise à jour 6 :
Aussi, voici une capture d'écran :
Mise à jour 7 :
Mon environnement ressemble typiquement à ceci :
Apple_PubSub_Socket_Render=/private/tmp/com.apple.launchd.k60Nf5UBfq/Render
DISPLAY=/private/tmp/com.apple.launchd.6FMoWPSlJI/org.macosforge.xquartz:0
EDITOR=env VIRTUAL_ENV= nvim -u /Users/john-doe/.config/vim/vimrc -p
GNUTERM=X11
HOME=/Users/romeo
HOMEBREW_NO_EMOJI=1
HOMEBREW_PREFIX=/usr/local
LANG=en_GB.UTF-8
LESS=-RI
LESSHISTFILE=-
LOGNAME=romeo
LS_COLORS=di=00;31:ex=00;37:mi=00;41;30:tw=00;33
MANPATH=/usr/local/opt/coreutils/libexec/gnuman
PAGER=less
PATH=/Users/john-doe/.config/fisherman/re-search:/usr/local/opt/python/libexec/bin:/usr/local/opt/ruby/bin:/usr/local/opt/coreutils/libexec/gnubin:/usr/local/bin:/usr/bin:/bin:/usr/local/sbin:/usr/sbin:/sbin:/usr/local/bin:/usr/bin:/bin:/usr/sbin:/sbin:/opt/X11/bin:/usr/local/MacGPG2/bin
PWD=/Users/romeo
SECURITYSESSIONID=186a8
SHELL=/usr/local/bin/fish
SHLVL=1
SSH_AUTH_SOCK=/private/tmp/com.apple.launchd.fQn5sHMuZP/Listeners
TERM=xterm-256color
TERM_PROGRAM=Apple_Terminal
TERM_PROGRAM_VERSION=400
TERM_SESSION_ID=D2AF7A50-8B41-4793-9201-8304A02C9B29
TMPDIR=/var/folders/15/zcyyfw_x7638z7vfg5zd85z40000gn/T/
USER=romeo
XDG_CACHE_HOME=/Users/john-doe/.cache
XDG_CONFIG_HOME=/Users/john-doe/.config
XPC_FLAGS=0x0
XPC_SERVICE_NAME=0
2 votes
Ceci pourrait être une suggestion simpliste, mais avez-vous essayé de contacter le support client d'Apple? Votre question n'a pas obtenu beaucoup d'attention depuis que vous l'avez postée, et leur équipe de support pourrait être au courant de ce problème. Ma seule autre suggestion serait de réinstaller MacOS. Cependant, étant donné que votre Mac est si récent, je ne sais pas si cela fonctionnerait.
1 votes
@klanomath terminé!
0 votes
Pour comprendre ce que fait le processus de connexion, sélectionnez-le dans le Moniteur d'activité et choisissez Échantillon de processus. Il en va de même pour les autres processus bloqués. Cependant, ce niveau de débogage peut ne pas être approprié pour une question et réponse sur StackExchange. Il peut être préférable de signaler un bogue à Apple en incluant le fichier d'échantillon, ou de trouver quelqu'un qui peut offrir un support pour diagnostiquer le problème à ce niveau. Voir developer.apple.com/bug-reporting
0 votes
Combien de temps cela reste-t-il en suspens? Avez-vous essayé de le laisser fonctionner pendant dix minutes? Votre machine est-elle liée à un réseau Open Directory? En particulier, la connexion doit récupérer vos informations d'utilisateur, et si vous êtes sur un réseau OD avec un serveur de répertoire occupé/non réactif, cela pourrait prendre quelques minutes pour répondre; d'autres programmes récupèrent également des informations d'utilisateur et pourraient souffrir de ce problème.
1 votes
N'ai pas essayé d'attendre plus longtemps, je vais essayer la prochaine fois. Je ne suis pas lié à un réseau Open Directory, ces erreurs se produisent aussi quand je ne suis sur aucun réseau.
0 votes
Toujours avoir ce problème. Aussi sur mon nouveau macbook 2017 sans Touch Bar. J'ai presque rien installé et j'utilise un shell différent (
fish
avec une configuration assez basique) donc je ne peux vraiment pas dire ce que c'est.0 votes
Si vous pensez que le problème vient de la commande de connexion, seriez-vous ouvert à utiliser une commande de connexion qui écrit des messages de débogage dans la console ? En d'autres termes, prenez le code source de la commande de connexion, ajoutez du code de débogage, compilez, liez, puis remplacez votre commande de connexion par la nouvelle.
0 votes
Je suis aussi affecté par cela (et c'est de plus en plus fréquent...)
0 votes
Au fait: fermer ma session ne règle pas le problème, seule une réinitialisation le fait.
0 votes
J'ai aidé quelqu'un l'autre jour avec un problème qui semblait très similaire à ceci (peut-être identique). Quelques points de données de cette session de débogage, au cas où cela serait utile à quelqu'un (je ne sais pas si cela s'applique à vous lorsque vous recevez ceci, mais c'est ce que j'ai vu) : (1) il semblait y avoir quelque chose d'étrange avec les pseudo-terminaux en général -- en particulier, j'ai remarqué que
ps -ef
imprimait un tas de processus, mais seulement ceux sans terminal assigné ;cd /dev; echo tty*
fonctionnait, maisls -l tty*
se bloquait...ls -l ttys?
fonctionnait,ls -l ttys???
se bloquait.0 votes
(2) il y avait quelques processus
sudo
suspendus parmi la liste des processus non associés à un terminal (??
dans la sortie deps
), etnode
était utilisé. Je mentionne cela car je vois à la foisnode
etsudo
dans la question. Pas sûr si c'est quelque chose de pertinent, ou juste une coïncidence, mais je tenais à le mentionner.0 votes
Oh oui, et cela suit un peu du point (1) ci-dessus, mais juste comme un point de données supplémentaire:
ps -fp $$
à partir d'un shell par ailleurs fonctionnel était également non réactif. Je n'ai pas essayé une exécution deps
personnalisée, mais essayer une qui exclut le champtty
pourrait être une chose intéressante à essayer. Oh, et le redémarrage a bien corrigé (du moins temporairement) le problème sur la machine où j'ai vu ça. :-/