检查我当前打开的文件/Volumes/UNTITLED
会得到 2 个条目:
$ sudo lsof /Volumes/UNTITLED/
COMMAND PID USER FD TYPE DEVICE SIZE/OFF NODE NAME
mds 62 root 8r DIR 1,6 32768 2 /Volumes/UNTITLED
mds 62 root 19r DIR 1,6 32768 2 /Volumes/UNTITLED
$
当我跑步时diskutil unmountDisk disk2
,所有描述符都已成功关闭(例如,我不能lsof /Volumes/UNTITLED/
再这样做了,因为文件夹已经消失了)。
diskutil unmountDisk
关闭文件描述符到底做了什么?我可以自己关闭文件描述符吗?
据我了解diskutil
是闭源的。问题可以通过采取来回答吗umount
?
议程
基本上我试图了解如何告诉进程关闭给定的文件描述符,例如模拟卸载的作用。
我认为告诉进程关闭文件描述符应该是非法的,因为通常它很容易导致进程崩溃。然而我认为 diskutil unmountDisk
以某种方式设法温和地要求mds
不再拥有该文件。
我很好奇我是否也可以温和地询问。我知道有一个endfsent
操作系统函数,但它不是一个程序,我无法运行它来操作不同进程打开的文件描述符。