为了理解为什么我不断收到以下错误
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
这是什么意思?
发生这些错误是因为这些文件属于一个特殊的文件系统
procfs
(安装在/proc
)。proc 文件系统以类似文件的分层结构显示有关进程的信息,因此当 find 尝试访问这些特殊文件时,它们不再存在。要忽略这些错误,
-xdev
请为 GNUfind
(或-x
BSDfind
)添加,例如另请参阅:如何使用 find 命令从搜索中排除文件夹 proc 和 sys?
/proc
是一个伪文件系统,其下的文件/proc
实际上并不存在于您的硬盘驱动器上。它们包含有关当前正在运行的进程的信息。发生这些错误是因为某些进程在find
运行时退出。这是完全正常的。(实际上,如果你
find
一遍又一遍地运行,并使用诸如ps a | grep find
获取命令的 PID 之类的find
命令,你会看到与错误消息中的 PID 相同的 PID。这有点像当你执行ps a | grep ps
命令grep
时也被“抓住”了。)find 抱怨是因为她看到一个进程 ID 为 31348 的僵尸进程。
每当我使用她时,我的发现都会抱怨进程 4052,
所以,
在我的例子中,它是几个小时前创建的僵尸进程(在我的 Linux 操作期间)。“kill -9 4052”当然没有效果,它是丧尸,丧尸是杀不死的。因为那里只有一个可怜的孤独僵尸,所以我就让它一个人呆着,直到下一次重启。
:)