![为什么‘nobody’总是启动一个新的‘find’程序,并且总是消耗我的内存?](https://linux22.com/image/860622/%E4%B8%BA%E4%BB%80%E4%B9%88%E2%80%98nobody%E2%80%99%E6%80%BB%E6%98%AF%E5%90%AF%E5%8A%A8%E4%B8%80%E4%B8%AA%E6%96%B0%E7%9A%84%E2%80%98find%E2%80%99%E7%A8%8B%E5%BA%8F%EF%BC%8C%E5%B9%B6%E4%B8%94%E6%80%BB%E6%98%AF%E6%B6%88%E8%80%97%E6%88%91%E7%9A%84%E5%86%85%E5%AD%98%EF%BC%9F.png)
$ 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
从进程树中可以看出,此命令由 运行updatedb
,它会更新命令的数据库locate
。locate 命令存储此数据,因此与其他方法(例如find
它本身)相比,它可以几乎立即给出结果。相关的 cron 作业是/etc/cron.daily/locate
,从 GUI 工具中可以看出。似乎你正在使用locate
而不是mlocate
。mlocate
应该做得更好资源节约型. 因此请先尝试安装mlocate
:
sudo apt-get install mlocate