Kontrol etmenin yolu fuser -vm /mnt/dir
, hangi root olarak çalıştırılmalıdır. Hangi işlemlerin bağlama noktasına eriştiğini size söyleyecektir.
Bir alternatif, lsof /mnt/dir
mount'daki her açık dosyayı gösterecektir. Yine en iyi kök olarak çalıştırın.
Bunlardan herhangi birini root olmayan olarak çalıştırabilirsiniz, ancak daha sonra çıktı işlemlerinizle sınırlı olacaktır - diğer kullanıcılardan gelenler dosya sisteminin çıkarılmasını engelleseler bile sessizce gösterilmezler.
Örnek:
Watt:~# fuser -vm /mnt/Zia/src
USER PID ACCESS COMMAND
/mnt/Zia/src: root kernel mount /mnt/Zia/src
anthony 24909 ..c.. bash
anthony 25041 F.c.. gvim
"Erişim" alanı size nasıl erişildiğini gösterir. Bu durumda, çekirdek bir montaj olarak kullanımdadır (ah, ama çıkarmadan sadece bu durumda tamam olacak). bash
mevcut çalışma dizini olarak var ( cd
unmount'tan önce farklı bir dizine gitmesi gerekecek ) ve gvim hem geçerli dizine sahip hem de bir dosya açık (o gvim dizisini kapatmanız gerekecek).
Watt:~# lsof /mnt/Zia/src
COMMAND PID USER FD TYPE DEVICE SIZE/OFF NODE NAME
bash 24909 anthony cwd DIR 0,26 12288 3527682 /mnt/Zia/src/perl (zia.vpn.home:/home/anthony/src)
gvim 25041 anthony cwd DIR 0,26 12288 3527682 /mnt/Zia/src/perl (zia.vpn.home:/home/anthony/src)
gvim 25041 anthony 6u REG 0,26 16384 3526219 /mnt/Zia/src/perl/.utf8.c.swp (zia.vpn.home:/home/anthony/src)
Bu çıktıda, hem bash hem de gvim için geçerli dizinleri görebilirsiniz (tür olarak DIR
). Ayrıca hangi gvim dosyasının açılabileceğini de görebilirsiniz.
Sorun nasıl zorlanır:
fuser
mount'u kullanan her işleme -k
bir sinyal (varsayılan:) gönderecek bir seçeneğe sahiptir SIGKILL
. Bu, bağlantının meşgul olmasını engellemenin oldukça güçlü bir yoludur. (Ve tabii ki, ne olduğuna dikkat et SIGKILL
!)
umount
-l
tembel bir unmount yapmak için bir seçeneğe sahiptir . Bağlama dosya sistemi ad alanından kaldırılır (böylece /mnt/Zia/src
, örnekte daha fazla göremezsiniz ), ancak takılı kalır, böylece erişen programlar bunu yapmaya devam edebilir. Bu programa erişen son program çıktığında, unmount aslında gerçekleşecektir.
Kesinleşemeyen başarısızlığın son bir düzeltilebilir nedeni var ve bu bir NFS sunucusu aşağı gidiyor. Burada kullanabilirsiniz umount -f
, ancak bunu yaparsanız veri kaybı riskiyle karşı karşıya kalırsınız. (Müşteriye henüz sunucu tarafından onaylanmayan yazma önbelleğe alınmış olabilir ve bu yazmalara atılacaktır. Ancak, uygulamalara zaten yazmanın başarılı olduğu söylenmiştir.)