Cuando abro un terminal por primera vez, o abro uno nuevo después de no haber usado uno por un tiempo, cualquier tipo de tabulación completada en mi directorio de inicio (por ejemplo, ls
y Tab ) tarda varios segundos. He visto este comportamiento antes cuando uso autofs
para montar unidades de red, pero no tengo ninguna en ~/
. Monto recursos compartidos de NFS con el montaje automático de systemd, pero esos están en ~/badabing/
, entonces todo en ~/
en sí mismo es solo un archivo local.
En caso de que se trate de un problema de montaje automático, aquí están los /etc/fstab
relevantes líneas (sí, el servidor se llama "badabing", lo nombré durante un atracón de Los Soprano hace unos años):
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
Luego, en ~/badabing
tengo:
$ 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
Me gustaría investigar esto más. ¿Puedo de alguna manera strace
¿Finalización de pestañas? Es la única forma de agregar echo
comandos en los diversos scripts de finalización de bash para ver qué está colgando? Hay bastantes de esos, así que realmente prefiero evitar eso.
Entonces, ¿qué está causando esto o, al menos, cómo puedo seguir depurándolo?
Respuesta aceptada:
Yo haría esto:
sudo strace -pXXXX -tfo /tmp/strace.log
donde XXXX es la identificación del proceso de bash. En una comprobación rápida de la finalización del nombre de archivo en uno de mis árboles de directorios montados en NFS, funciona sin problemas:
-f
Rastree los procesos secundarios a medida que los crean los procesos rastreados actualmente como resultado de la llamada al sistema fork(2).
-t
Prefije cada línea de la traza con la hora del día.
Algunas personas pueden preferir -r
:
-r
Imprima una marca de tiempo relativa al ingresar a cada llamada al sistema. Esto registra la diferencia de tiempo entre el comienzo de sucesivas llamadas al sistema.