问题标签 [fuser]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
2 回答
10256 浏览

windows - 什么是“fuser -k”的 Windows 批处理等价物“?

我有一个 Unix shell 脚本,它将杀死任何正在访问文件夹的进程:

是否有与此等效的 Windows 批处理脚本?我知道 TASKKILL,但我不确定它是否能满足我的需要。有谁知道这是否可以通过 Windows shell 实现?

0 投票
1 回答
1088 浏览

bash - fuser bash 脚本返回意外的输出

回声$?正在返回“1”,因为 fuser 进程正在访问挂载 - 而不是回显“挂载正在使用中”,而是回显“没有进程访问挂载”。除了语法之外,我不确定是什么导致了这种相反的行为,但也许我完全错误地构建了它。

0 投票
0 回答
868 浏览

python - 为什么用子进程调用 fuser 会返回多个 PID?

我有以下文件(编写用于 py.test):

py.test从命令行运行产生:

这是不寻常的,因为人们希望fuser()返回一个 PID,而不是两个,因为只有调用才能open()打开文件。

test_fuser_1()为了进一步调查这一点,我在调用 之前fuser()在 的上下文中设置了一个断点,open()然后重新运行测试。

在断点处,我获取了临时文件的名称:

然后,从另一个终端调用fuser,我看到了一个 PID,正如预期的那样。

这似乎表明子进程负责第二个 PID,但我不确定为什么会这样,并且已经没有关于如何进一步调查的想法。知道第二个 PID 是从哪里来的吗?

我虽然也许 py.test 可能与此有关,所以我重写了用于鼻子的测试:

但是用鼻子运行它们会导致同样的失败:

0 投票
4 回答
4809 浏览

linux - 如何确定哪个进程正在打开某个 tcp 端口?

我通常使用fuser命令来检查打开某个 tcp 端口的 pid,如下所示

我有一个运行嵌入式 linux 的参考板。它已经为 ssh 连接打开了 22 个 tcp 端口。但是 fuser 不显示任何关于 22 端口的输出。所以我尝试了另一个 ssh 守护进程来打开 322 端口,然后尝试使用 fuser 检查 pid,它工作正常。

如何确定哪个进程正在打开 tcp 22 端口。(在板上,lsof 命令不可用,并且.. netstat 没有 -p 选项。)

0 投票
0 回答
1109 浏览

linux - 带有 SSHFS 的 Atom 包 ... fusermount:挂载失败:不允许操作

我正在编写一个 Atom 包,它尝试通过 SSHFS 挂载远程文件系统并在树视图中显示它。我在让安装成功时遇到问题。具体来说,如果我在终端输入以下内容,则作为用户“wagoodman”:

这很好用!也就是说,我可以通过 ssh 从我的 localhost 挂载 /tmp 目录到 /home/wagoodman/.atom/mounts/localhost/tmp 没有问题。

但是,如果我在 Atom 包(咖啡脚本)中尝试相同的任务,那么它会失败并显示fusermount: mount failed: Operation not permitted. 我已经检查过 atom 在同一个用户(wagoodman)下运行。这是通过调用 child_process.exec 到系统上的 sshfs 二进制文件来完成的(带有必要的参数)。

需要注意的一些有趣的事情:如果我编写一个通过命令行调用的小型 coffescript 执行相同的操作(调用 child_process.exec 到 sshfs)并且脚本工作正常!这是相当令人困惑的。

我创建了一个带有小 Atom 包的仓库来重现我在这里看到的问题:https ://github.com/wagoodman/fusermount-issue

在 Dev 模式下将包添加到 atom 并按 Ctrl+Alt+O 以查看问题。运行coffee test.coffee查看操作工作。

注意:您需要针对您的环境(用户、挂载点等)调整test.coffee参数lib/fusermount-issue.coffee

0 投票
4 回答
1135 浏览

linux - 如何检查 Linux 符号链接是否正在使用?(删除未使用的符号链接)

只有在使用原始文件时,fuser 才能向您显示。

如果 SYMLINK IS IN USE 调用原始文件,fuser 不会向您显示。这就是问题所在。您不知道符号链接是否未使用并且可以删除。

我已经启动了两个进程(24261 打开原始文件和 24262 打开符号链接):

在这两种情况下,fuser 都会告诉符号链接和原始文件正在使用中(每个命令有两个进程):

但是我们知道第一个进程没有使用符号链接。它甚至可以被删除,不会影响第一个过程。

假设如果包未使用,我想删除“gcc”包。

原始文件来自“libgcc”包。

符号链接来自“gcc”包:

如果我要删除只包含符号链接的“gcc”包,我会影响第二个进程!如何查看符号链接是否未使用?

就我而言,“ps -ef”表明我使用了命令:

所以 ps 甚至不能告诉你使用了符号链接。

有 Linux 大师吗?

编辑:有部分解决方案检查 cwd - 当前工作目录:

所以从这里你可以看到路径“/usr/lib/gcc/x86_64-redhat-linux/4.4.4”,你可以从 ps 获取文件名。

如果您这样做,这将不起作用:

它显示 /root 的 cwd,但符号链接在脚本/程序内。那么你需要检查 /usr/lib/gcc/x86_64-redhat-linux/4.4.4/libgcc_s.so 的 ps chill 进程。

当您想要自动删除包时(如果包未在使用中),这非常令人困惑。

如果有人能看到更简单的方法,那就太好了。此外,如果有人可以确认在使用检测中使用 cwd 和 ps 子进程进行符号链接的准确性。

如果 script.sh 是二进制文件会发生什么?我还能在“ps”或 cwd 中看到完整的符号链接路径吗?

0 投票
0 回答
313 浏览

linux - 如何将 fuser 的输出重定向到文件?

我正在使用fuser选项-uv,我得到以下输出:

但是,当我尝试重定向命令的输出时,我只会在文件中获取 PID:

为什么在输出重定向期间不包括所有信息?

另外,如何在输出重定向期间包含所有信息?

使用lsof我可以将所有信息重定向到文件。

0 投票
2 回答
1657 浏览

powershell - Powershell中的定影器等效项?

我想删除一个目录,但一个进程正在使用它。

Explorer 提到该目录正在使用中。是否有相当于 Windows Powershell 的fuser

请注意,这是一个 powershell 问题。我不想启动 GUI 应用程序。

0 投票
1 回答
174 浏览

linux - 计算Linux系统上有多少进程保存一个文件

我很想知道有多少进程或任何其他实体在系统上保存特定文件。我试图找到一种使用 lsof 的方法(出于有效性原因,我不想汇总所有持有者),但在手册页中找不到任何内容。

请注意,我并不是指计算 fs 上此特定文件的硬链接计数的 inode 链接计数。

编辑:我现在知道可以使用 fuser(在下面的答案之一中提到)来获取此信息,但 fuser 使用 procfs,因此效率不高。有谁知道任何其他不迭代 procfs 的工具?

谢谢。

0 投票
5 回答
4435 浏览

bash - 通过 Jenkins 杀死特定端口上的所有进程

我想要一份 Jenkins 工作,它会杀死端口 5000 (bash) 上的所有进程。简单的解决方案

当我在终端中执行此命令时工作正常,但在 Jenkins(“执行 shell”)上将构建标记为失败。

我也试过

但同样,由于它在常规终端上工作,在詹金斯我得到

任何想法如何解决这一问题?