1

我在用ubuntu 12.04

通常我可以找到任何文件使用locate

但我无法pid files找到/var/run

即使 find 命令也找不到它们。

我已经使用更新了索引sudo updatedb

更新了b.conf

PRUNE_BIND_MOUNTS="yes"
# PRUNENAMES=".git .bzr .hg .svn"
PRUNEPATHS="/tmp /var/spool /media /home/.ecryptfs"
PRUNEFS="NFS nfs nfs4 rpc_pipefs afs binfmt_misc proc smbfs autofs iso9660 ncpfs coda devpts ftpfs devfs mfs shfs sysfs cifs lustre_lite tmpfs usbfs udf fuse.glusterfs fuse.sshfs curlftpfs ecryptfs fusesmb devtmpfs"
4

2 回答 2

1

所以,首先

`stat -f -c %T /var/run` 

显示此文件夹的文件系统是tmpfs.

然后

`cat /etc/updatedb.conf` 

显示updatedb.conf禁止扫描文件系统上的文件和文件夹tmpfs

PRUNEFS="NFS nfs nfs4 rpc_pipefs afs binfmt_misc proc smbfs autofs iso9660 ncpfs coda devpts ftpfs devfs mfs shfs sysfs cifs lustre_lite tmpfsusbfs udf fuse.glusterfs fuse.sshfs curlftpfs ecryptfs fusesmb devtmpfs"

这就是为什么pid files在 /var/run 中找不到文件的原因locate

有用的链接:

于 2014-05-29T15:26:39.623 回答
0

您需要查看/bin/updatedb.sh的内容,并检查变量 PRUNEFS 和 PRUNEPATHS。默认情况下/var/run未在 Ubuntu 的 PRUNEPATHS 变量中指定(我相信),但tmpfs列在 PRUNEFS 中,这就是/var/run的含义。如果您希望它列出该文件夹的内容,则需要从updatedb.sh中的文件系统 prune 变量(以及 cron 作业文件)中删除tmpfs 。尽管我不太确定您为什么要 locate 这样做...它不适合搜索频繁变化的系统,是不是更适合您 寻找在这种情况下应该可以工作(假设您已确保您具有读取权限。)

于 2014-05-29T06:21:01.630 回答