เหตุใด 'ไม่มีใคร' จึงเริ่มโปรแกรม "find" ใหม่ที่ใช้ความทรงจำของฉันอยู่เสมอ


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

ฉันอัปเดตคำตอบเล็กน้อยดูว่ามันมีประโยชน์มากกว่านี้ไหม
muru

คำตอบ:


6

อย่างที่คุณเห็นจากแผนผังกระบวนการคำสั่งนี้ดำเนินการโดยupdatedbซึ่งจะอัพเดตฐานข้อมูลสำหรับlocateคำสั่ง คำสั่งค้นหาเก็บข้อมูลนี้เพื่อให้สามารถให้ผลลัพธ์ใกล้ทันทีเมื่อเปรียบเทียบกับวิธีอื่นเช่นfindตัวมันเอง งาน cron ที่เกี่ยวข้องคือ/etc/cron.daily/locateสามารถเห็นได้จากเครื่องมือ GUI ดูเหมือนว่าคุณกำลังใช้แทนlocate ควรจะทำงานที่ดีขึ้นของการเป็นทรัพยากรอย่างมีประสิทธิภาพ ดังนั้นลองติดตั้งก่อน:mlocatemlocatemlocate

sudo apt-get install mlocate

ดูเพิ่มเติมที่: ฉันสามารถปิดใช้งาน updatedb.mlocate ได้หรือไม่

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.