วิธีการตรวจสอบคือfuser -vm /mnt/dir
ต้องรันเป็นรูท มันจะบอกคุณว่ากระบวนการใดกำลังเข้าถึงจุดเชื่อมต่อ
ทางเลือกคือlsof /mnt/dir
ซึ่งจะแสดงไฟล์ที่เปิดแต่ละไฟล์บนเมานต์ ทำงานที่ดีที่สุดอีกครั้งเป็น root
คุณสามารถเรียกใช้สิ่งเหล่านี้ไม่เป็นรูท แต่ผลลัพธ์จะถูก จำกัด ในกระบวนการของคุณ - คนที่มาจากผู้ใช้รายอื่นจะไม่แสดงอย่างเงียบ ๆ แม้ว่าพวกเขาจะป้องกันการ unmount ระบบไฟล์
ตัวอย่าง:
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
ช่อง "เข้าถึง" จะบอกคุณถึงวิธีการเข้าถึง ในกรณีนี้เคอร์เนลมีการใช้เป็นเมานท์ (duh แต่ unmount จะตกลงกับสิ่งนี้เท่านั้น) bash
มีมันเป็นไดเรกทอรีการทำงานปัจจุบัน (จะต้องไปcd
ยังไดเรกทอรีที่แตกต่างกันก่อนที่จะเลิกเมานท์) และ gvim ทั้งสองมีไดเรกทอรีปัจจุบันและมีไฟล์ที่เปิดอยู่ (จะต้องปิด gvim นั้น)
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)
ในเอาต์พุตนี้คุณสามารถดูไดเร็กทอรีปัจจุบันสำหรับทั้ง bash และ gvim (เป็นชนิดDIR
) คุณยังสามารถดูไฟล์ gvim ที่เปิดอ่านได้
วิธีการบังคับใช้ปัญหา:
fuser
มี-k
ตัวเลือกที่จะส่งสัญญาณ (ค่าเริ่มต้น:) SIGKILL
ไปยังแต่ละกระบวนการโดยใช้การเมาท์ นี่เป็นวิธีที่ค่อนข้างมีพลังในการหยุดการเมาไม่ว่าง (และแน่นอนระวังสิ่งที่คุณSIGKILL
!)
umount
มี-l
ตัวเลือกในการดำเนินการ unmount ที่ขี้เกียจ การเมาท์จะถูกลบออกจากเนมสเปซของระบบไฟล์ (ดังนั้นคุณจะไม่เห็นมัน/mnt/Zia/src
อีกต่อไปในตัวอย่าง) แต่จะยังคงเมานต์อยู่ดังนั้นโปรแกรมที่เข้าถึงมันจะสามารถทำต่อไปได้ เมื่อโปรแกรมสุดท้ายที่เข้าใช้ออกจากระบบการถอนติดตั้งจะเกิดขึ้นจริง
มีสาเหตุหนึ่งที่แก้ไขได้สุดท้ายของการ unmount ที่ล้มเหลวและนั่นคือเซิร์ฟเวอร์ NFS ที่กำลังจะล่ม ที่นี่คุณสามารถใช้umount -f
แต่คุณเสี่ยงต่อการสูญเสียข้อมูลถ้าคุณทำเช่นนั้น (ไคลเอ็นต์อาจมีการเขียนแคชที่ยังไม่ได้รับการยืนยันจากเซิร์ฟเวอร์และการเขียนเหล่านั้นจะถูกยกเลิกอย่างไรก็ตามแอปได้รับการแจ้งว่าการเขียนสำเร็จแล้ว)