GNU/Linux >> LINUX-Kenntnisse >  >> Linux

Tab-Vervollständigung hängt?

Wenn ich zum ersten Mal ein Terminal öffne oder ein neues öffne, nachdem ich es eine Weile nicht benutzt habe, wird jede Art von Tab-Vervollständigung in meinem Home-Verzeichnis (zum Beispiel ls und Tab ) dauert einige Sekunden. Ich habe dieses Verhalten schon einmal bei der Verwendung von autofs gesehen um Netzlaufwerke zu mounten, aber ich habe keine in ~/ . Ich mounte NFS-Freigaben mit dem Automount von systemd, aber diese befinden sich in ~/badabing/ , also alles in ~/ selbst ist nur eine lokale Datei.

Falls es sich um ein Automount-Problem handelt, finden Sie hier die relevanten /etc/fstab Zeilen (ja, der Server heißt „badabing“, ich habe ihn vor ein paar Jahren während einer Sopranos-Binge genannt):

badabing:/nfs_shares/music /mnt/badabing/music    nfs4  noauto,x-systemd.automount,x-systemd.device-timeout=5sec,x-systemd.idle-timeout=1min    0 0
badabing:/nfs_shares/series /mnt/badabing/series  nfs4  noauto,x-systemd.automount,x-systemd.device-timeout=5sec,x-systemd.idle-timeout=1min    0 0
badabing:/nfs_shares/movies /mnt/badabing/movies  nfs4  noauto,x-systemd.automount,x-systemd.device-timeout=5sec,x-systemd.idle-timeout=1min    0 0

Dann in ~/badabing Ich habe:

$ ls -l ~/badabing/
total 0
lrwxrwxrwx 1 terdon terdon 32 Jan 10  2016 movies -> /mnt/badabing/nfs_shares/movies/
lrwxrwxrwx 1 terdon terdon 31 Jan 10  2016 music -> /mnt/badabing/nfs_shares/music/
lrwxrwxrwx 1 terdon terdon 31 Jan 10  2016 series -> /mnt/badabing/nfs_shares/series

Ich würde das gerne genauer untersuchen. Kann ich irgendwie strace Tab-Vervollständigung? Ist die einzige Möglichkeit, echo hinzuzufügen Befehle in den verschiedenen Bash-Vervollständigungsskripten, um zu sehen, was hängt? Davon gibt es einige, also würde ich das wirklich lieber vermeiden.

Also, was verursacht das oder zumindest, wie kann ich es weiter debuggen?

Akzeptierte Antwort:

Ich würde dies tun:

sudo strace -pXXXX -tfo /tmp/strace.log

wobei XXXX ist die Prozess-ID von bash. Bei einer schnellen Überprüfung der Dateinamenvervollständigung in einem meiner NFS-gemounteten Verzeichnisbäume funktioniert es ohne Probleme:

-f

Untergeordnete Prozesse verfolgen, wie sie von derzeit verfolgten Prozessen als Ergebnis des Systemaufrufs fork(2) erstellt werden.

-t

Stellen Sie jeder Zeile der Ablaufverfolgung die Tageszeit voran.

Einige Leute bevorzugen vielleicht -r :

-r

Drucken Sie einen relativen Zeitstempel beim Eintritt in jeden Systemaufruf. Dies zeichnet die Zeitdifferenz zwischen dem Beginn aufeinanderfolgender Systemaufrufe auf.


Linux
  1. Tab-Vervollständigung für Git-Zweige mit alten/veralteten Einträgen?

  2. Leitfaden zur Windows-Ressourcenüberwachung

  3. So deaktivieren Sie die automatische Vervollständigung (Tab-Vervollständigung) in der Bash-Shell

  4. Sortieren einer tabulatorgetrennten Datei

  5. Java ProcessBuilder:Resultierender Prozess hängt

Abschluss abbrechen, aber nur Abschluss, in Zsh?

So beheben Sie, dass die Tab-Vervollständigung in Ubuntu und Debian nicht funktioniert

Der Befehl openssl hängt

Tab-Vervollständigung in Emacs-SSH-Sitzungen im Shell-Modus

pip3 install pandas hängt

Wie setze ich die Tabulatortaste in vim auf 4 Leerzeichen?