使用 sudo find / -type s 时出现大量“文件未找到”

使用 sudo find / -type s 时出现大量“文件未找到”

为了理解为什么我不断收到以下错误

error: 'Can't connect to local MySQL server through socket '/var/run/mysqld/mysqld.sock' (2)' 

在使用命令时,sudo find / -type s终端提示如下内容

find: ‘/proc/31348/task/31348/fd/5’: No such file or directory
find: ‘/proc/31348/task/31348/fdinfo/5’: No such file or directory
find: ‘/proc/31348/fd/5’: No such file or directory
find: ‘/proc/31348/fdinfo/5’: No such file or directory

这是什么意思?

答案1

发生这些错误是因为这些文件属于特殊的文件系统procfs(安装在 处/proc)。proc 文件系统以分层文件式结构呈现有关进程的信息,因此当 find 尝试访问这些特殊文件时,它们不再存在。

要忽略这些错误,请添加-xdevGNU find(或-xBSD find),例如

sudo find / -type s -xdev

-xdev不要将目录下降到其他文件系统上。

也可以看看:如何使用 find 命令从搜索中排除文件夹 proc 和 sys?

答案2

/proc是一个伪文件系统,下面的文件/proc实际上并不存在于您的硬盘上。它们包含有关当前正在运行的进程的信息。这些错误发生的原因是某些进程在find运行时退出。这是完全正常的。

(实际上,如果您find反复运行并使用诸如ps a | grep find获取命令的 PID 之类的命令find,您将看到与错误消息中相同的 PID。这有点像当您执行ps a | grep ps命令时grep也会被“抓取”。)

答案3

find 抱怨,因为她看到一个进程 ID 为 31348 的僵尸进程。

每次使用 find 时,它都会提示进程 4052,

find: ‘/proc/4052/task/4052/ns/net’: No such file or directory
find: ‘/proc/4052/task/4052/ns/uts’: No such file or directory
find: ‘/proc/4052/task/4052/ns/ipc’: No such file or directory
find: ‘/proc/4052/ns/net’: No such file or directory
find: ‘/proc/4052/ns/uts’: No such file or directory
find: ‘/proc/4052/ns/ipc’: No such file or directory

[root@mylaptop /]# ps -ef | grep 4052
root      4052  4043  0 Jun19 ?        00:00:00 [sh] <defunct>

所以,

在我的情况下,这是一个僵尸进程,是在几个小时前创建的(在我的 Linux 操作期间)。“kill -9 4052”当然没有效果,它是一个僵尸进程,而僵尸进程是无法被杀死的。由于它只有一个可怜的孤独僵尸,所以我就让它不管了,直到下次重新启动。

:)

相关内容