Mengapa 'tidak ada' selalu memulai program `find` baru yang selalu menghabiskan memori saya?

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                          
...

Pekerjaan ini selalu dimulai secara otomatis dan menghabiskan memori saya. Bahkan setelah saya kill, itu akan dimulai beberapa jam kemudian.

Pekerjaan apa itu?

EDIT

Catatan: pid berbeda dari yang di atas karena saya membunuh yang di atas, tunggu beberapa jam, lalu yang kedua datang.

$ 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)

Seperti inilah tampilannya dalam alat grafis:

masukkan deskripsi gambar di sini

Yishu Fang
sumber
1
Gunakan pstree -psdengan PID pekerjaan itu untuk melihat apa yang memulainya.
muru
Saya sedikit memperbarui jawabannya, lihat apakah itu lebih berguna sekarang.
muru

Jawaban:

6

Seperti yang Anda lihat dari pohon proses, perintah ini dijalankan oleh updatedb, yang memperbarui basis data untuk locateperintah. Perintah loc menyimpan data ini sehingga dapat memberikan hasil yang dekat secara instan dibandingkan dengan cara lain seperti finditu sendiri. Pekerjaan cron yang relevan adalah /etc/cron.daily/locate, seperti yang dapat dilihat dari alat GUI. Tampaknya Anda menggunakan locatebukan mlocate. mlocateseharusnya melakukan pekerjaan yang lebih baik untuk menjadi efisien sumber daya . Jadi coba instal mlocatedulu:

sudo apt-get install mlocate

Lihat juga: Dapatkah saya menonaktifkan updatedb.mlocate?

muru
sumber