问题标签 [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.
windows - 什么是“fuser -k”的 Windows 批处理等价物“?
我有一个 Unix shell 脚本,它将杀死任何正在访问文件夹的进程:
是否有与此等效的 Windows 批处理脚本?我知道 TASKKILL,但我不确定它是否能满足我的需要。有谁知道这是否可以通过 Windows shell 实现?
bash - fuser bash 脚本返回意外的输出
回声$?正在返回“1”,因为 fuser 进程正在访问挂载 - 而不是回显“挂载正在使用中”,而是回显“没有进程访问挂载”。除了语法之外,我不确定是什么导致了这种相反的行为,但也许我完全错误地构建了它。
python - 为什么用子进程调用 fuser 会返回多个 PID?
我有以下文件(编写用于 py.test):
py.test
从命令行运行产生:
这是不寻常的,因为人们希望fuser()
返回一个 PID,而不是两个,因为只有调用才能open()
打开文件。
test_fuser_1()
为了进一步调查这一点,我在调用 之前fuser()
在 的上下文中设置了一个断点,open()
然后重新运行测试。
在断点处,我获取了临时文件的名称:
然后,从另一个终端调用fuser
,我看到了一个 PID,正如预期的那样。
这似乎表明子进程负责第二个 PID,但我不确定为什么会这样,并且已经没有关于如何进一步调查的想法。知道第二个 PID 是从哪里来的吗?
我虽然也许 py.test 可能与此有关,所以我重写了用于鼻子的测试:
但是用鼻子运行它们会导致同样的失败:
linux - 如何确定哪个进程正在打开某个 tcp 端口?
我通常使用fuser命令来检查打开某个 tcp 端口的 pid,如下所示
我有一个运行嵌入式 linux 的参考板。它已经为 ssh 连接打开了 22 个 tcp 端口。但是 fuser 不显示任何关于 22 端口的输出。所以我尝试了另一个 ssh 守护进程来打开 322 端口,然后尝试使用 fuser 检查 pid,它工作正常。
如何确定哪个进程正在打开 tcp 22 端口。(在板上,lsof 命令不可用,并且.. netstat 没有 -p 选项。)
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
。
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 中看到完整的符号链接路径吗?
linux - 如何将 fuser 的输出重定向到文件?
我正在使用fuser
选项-uv
,我得到以下输出:
但是,当我尝试重定向命令的输出时,我只会在文件中获取 PID:
为什么在输出重定向期间不包括所有信息?
另外,如何在输出重定向期间包含所有信息?
使用lsof
我可以将所有信息重定向到文件。
powershell - Powershell中的定影器等效项?
我想删除一个目录,但一个进程正在使用它。
Explorer 提到该目录正在使用中。是否有相当于 Windows Powershell 的fuser
?
请注意,这是一个 powershell 问题。我不想启动 GUI 应用程序。
linux - 计算Linux系统上有多少进程保存一个文件
我很想知道有多少进程或任何其他实体在系统上保存特定文件。我试图找到一种使用 lsof 的方法(出于有效性原因,我不想汇总所有持有者),但在手册页中找不到任何内容。
请注意,我并不是指计算 fs 上此特定文件的硬链接计数的 inode 链接计数。
编辑:我现在知道可以使用 fuser(在下面的答案之一中提到)来获取此信息,但 fuser 使用 procfs,因此效率不高。有谁知道任何其他不迭代 procfs 的工具?
谢谢。
bash - 通过 Jenkins 杀死特定端口上的所有进程
我想要一份 Jenkins 工作,它会杀死端口 5000 (bash) 上的所有进程。简单的解决方案
当我在终端中执行此命令时工作正常,但在 Jenkins(“执行 shell”)上将构建标记为失败。
我也试过
但同样,由于它在常规终端上工作,在詹金斯我得到
任何想法如何解决这一问题?