为什么“没人”总是启动一个总是消耗我内存的新“查找”程序?


8
$ ps -elf | grep
...
0 D nobody   27320 27319  2  90  10 - 353471 sleep_ 07:54 ?       00:02:19 /usr/bin/find / -ignore_readdir_race ( -fstype NFS -o -fstype nfs -o -fstype nfs4 -o -fstype afs -o -fstype binfmt_misc -o -fstype proc -o -fstype smbfs -o -fstype autofs -o -fstype iso9660 -o -fstype ncpfs -o -fstype coda -o -fstype devpts -o -fstype ftpfs -o -fstype devfs -o -fstype mfs -o -fstype shfs -o -fstype sysfs -o -fstype cifs -o -fstype lustre_lite -o -fstype tmpfs -o -fstype usbfs -o -fstype udf -o -fstype ocfs2 -o -type d -regex \(^/tmp$\)\|\(^/usr/tmp$\)\|\(^/var/tmp$\)\|\(^/afs$\)\|\(^/amd$\)\|\(^/alex$\)\|\(^/var/spool$\)\|\(^/sfs$\)\|\(^/media$\)\|\(^/var/lib/schroot/mount$\) ) -prune -o -print0                          
...

这项工作总是自动开始并占用我的内存。即使在我kill之后,它也会在几个小时后开始。

那是什么工作

编辑

注意:pid与上面的有所不同,因为我杀死了上面的一个,等待几个小时,然后第二个来了。

$ pstree -psl
|-anacron(25920)---sh(25929)---run-parts(25930)---locate(26343)---updatedb.findut(26348)-+-frcode(26358)
|                                                                                        |-sort(26357)
|                                                                                        `-updatedb.findut(26356)---su(26387)---sh(26402)---find(26403)

这是图形工具中的样子:

在此处输入图片说明


1
pstree -ps与该作业的PID一起使用以查看启动它的原因。
大师

我对答案做了一些更新,看看现在是否更有用。
muru

Answers:


6

从流程树中可以看到,该命令由运行updatedb,它将更新该locate命令的数据库。查找命令存储此数据,以便与其他方法(例如其find自身)相比,可以几乎即时获得结果。/etc/cron.daily/locate从GUI工具可以看出,相关的cron作业是。看来您正在使用locate而不是mlocatemlocate应该在资源节约方面做得更好。因此,请尝试mlocate先安装:

sudo apt-get install mlocate

另请参阅:我可以禁用updatedb.mlocate吗?

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.