gpt4 book ai didi

lsof - lsof 的替代方案 - 检测锁定的文件

转载 作者:行者123 更新时间:2023-12-05 00:24:34 27 4
gpt4 key购买 nike

文件被 fcntl(非阻塞)或某种自定义方式锁定。所以我正在使用 lsof 并检查进程的 pid 是否在那里。如果 lsof 返回空白,则表示没有使用它。

但是,我的脚本中的 lsof 需要 200 毫秒。

在 Windows 上,当我尝试测试文件是否被锁定时,我只是打开文件并错误地将其锁定,这需要 5 毫秒。有没有 lsof 的替代方法来进行快速测试以查看是否有文件保存?

最佳答案

fuser 命令是一个非常智能的 unix 实用程序,用于查找哪个进程正在使用文件、目录或套接字。它还提供有关拥有进程的用户和访问类型的信息。 READ MORE --digitalocean.com

要显示访问特定目录的进程,请使用:

fuser -uvm /somedir

下面的输出显示,在详细模式下运行时,fuse 实用程序会提供有关 USER, PID, ACCESS and COMMAND 的信息。
root@exampleuser-X55CR:~# fuser -v .
USER PID ACCESS COMMAND
/root: root 3378 ..c.. vim
root 3398 ..c.. bash
root 3449 ..c.. bash
root 19370 ..c.. bash
fuser在识别打开特定文件的进程 ID 时很有用。
lsof找出特定进程打开的所有文件很有用。

有关与 fuser 一起使用的更多选项,您可以查看其手册页 man fuser
这是一些:
]$ fuser
No process specification given
Usage: fuser [ -a | -s | -c ] [ -n SPACE ] [ -SIGNAL ] [ -kimuv ] NAME...
[ - ] [ -n SPACE ] [ -SIGNAL ] [ -kimuv ] NAME...
fuser -l
fuser -V
Show which processes use the named files, sockets, or filesystems.

-a display unused files too
-c mounted FS
-f silently ignored (for POSIX compatibility)
-i ask before killing (ignored without -k)
-k kill processes accessing the named file
-l list available signal names
-m show all processes using the named filesystems
-n SPACE search in this name space (file, udp, or tcp)
-s silent operation
-SIGNAL send this signal instead of SIGKILL
-u display user IDs
-v verbose output
-V display version information
-4 search IPv4 sockets only
-6 search IPv6 sockets only
- reset options

udp/tcp names: [local_port][,[rmt_host][,[rmt_port]]]

关于lsof - lsof 的替代方案 - 检测锁定的文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25981393/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com