Když poprvé otevřu terminál nebo otevřu nový poté, co jsem jej nějakou dobu nepoužíval, jakýkoli druh dokončení karty v mém domovském adresáři (například ls
a Tab ) trvá několik sekund. Toto chování jsem již viděl při použití autofs
připojit síťové disky, ale v ~/
žádné nemám . Sdílené položky NFS připojuji pomocí automatického připojení systemd, ale ty jsou v ~/badabing/
, takže vše v ~/
sám o sobě je pouze místním souborem.
V případě, že se jedná o problém s automatickým připojením, zde jsou příslušné /etc/fstab
linek (ano, server se jmenuje „badabing“, pojmenoval jsem ho před několika lety během flámu Sopranos):
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
Poté v ~/badabing
Mám:
$ 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
Rád bych to prozkoumal více. Mohu nějak strace
dokončení karty? Je to jediný způsob, jak přidat echo
příkazy v různých skriptech pro dokončení bash, abyste viděli, co visí? Je jich docela dost, takže bych se tomu opravdu raději vyhnul.
Co to tedy způsobuje, nebo alespoň jak to mohu dále ladit?
Přijatá odpověď:
Udělal bych toto:
sudo strace -pXXXX -tfo /tmp/strace.log
kde XXXX je id procesu bash. Při rychlé kontrole dokončení souboru na jednom z mých adresářových stromů připojených k NFS funguje bez problémů:
-f
Sledujte podřízené procesy tak, jak jsou vytvářeny aktuálně sledovanými procesy v důsledku systémového volání fork(2).
-t
Před každým řádkem trasování uveďte čas dne.
Někteří lidé mohou preferovat -r
:
-r
Vytiskněte relativní časové razítko při vstupu do každého systémového volání. To zaznamenává časový rozdíl mezi začátkem po sobě jdoucích systémových volání.