Tại sao 'không ai' luôn bắt đầu một chương trình `find` mới luôn chiếm bộ nhớ của tôi?


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

Công việc này luôn bắt đầu tự động và tiêu tốn bộ nhớ của tôi. Ngay cả sau khi tôi kill, nó sẽ bắt đầu vài giờ sau đó.

Công việc đó là gì

BIÊN TẬP

Lưu ý: pid khác với ở trên vì tôi đã giết cái ở trên, đợi trong vài giờ, sau đó cái thứ hai đến.

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

Đây là những gì nó trông giống như trong một công cụ đồ họa:

nhập mô tả hình ảnh ở đây


1
Sử dụng pstree -psvới PID của công việc đó để xem những gì đã bắt đầu nó.
muru

Tôi đã cập nhật câu trả lời một chút, xem bây giờ nó có hữu ích hơn không.
muru

Câu trả lời:


6

Như bạn có thể thấy từ cây quy trình, lệnh này được chạy bởi updatedb, cập nhật cơ sở dữ liệu cho locatelệnh. Lệnh xác định vị trí lưu trữ dữ liệu này để nó có thể cho kết quả gần như ngay lập tức so với các phương tiện khác như findchính nó. Công việc định kỳ có liên quan là /etc/cron.daily/locate, như có thể thấy từ công cụ GUI. Có vẻ như bạn đang sử dụng locatethay vì mlocate. mlocateđược cho là làm một công việc tốt hơn là hiệu quả tài nguyên . Vì vậy, hãy thử cài đặt mlocatetrước:

sudo apt-get install mlocate

Xem thêm: Tôi có thể vô hiệu hóa updateb.mlocate không?

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.