En son güvenlik açığı açıklamasının ardından sistem tarafından çözümlenen hizmeti ararken, find komutundan çok garip bir davranış görmeye geldim.
root@localhost:/# find . -name "*systemd-resolved*"
./usr/share/man/man8/systemd-resolved.service.8.gz
./usr/share/man/man8/systemd-resolved.8.gz
Komut, ilk çalıştırma için çıkış olarak 0 veya iki satır döndürür. Ama komutu ikinci kez çalıştırırsam:
root@localhost:/# find . -name "*systemd-resolved*"
./usr/share/man/man8/systemd-resolved.service.8.gz
./usr/share/man/man8/systemd-resolved.8.gz
./lib/systemd/systemd-resolved
./lib/systemd/system/systemd-resolved.service.d
./lib/systemd/system/systemd-resolved.service
Bu, ilk kez "find" ın aslında her şeyi bulamadığı anlamına gelir. Ayrıca bu sadece bir kez olur. Komutu bir sonraki sefer çalıştırmak doğru çıktıyı gösterir. Debian 8 (jessie) kurulu diğer bazı sistemlerde bunu kontrol ettim. Çekirdek 4.9 ve sonraki sürümleri olanlarda bu kesin sorun her zaman oluşur, ancak çekirdek 3.16 olan sistemlerde bu olmaz.
Sistem yeniden başlatıldıktan sonra tüm bunlar tekrar olur. Ancak davranış her bir sistem için aynıdır. Bu, belirli bir sistemde test yapılması, ilk çalıştırma için iki çıkış satırı ve ikinci çalıştırma için doğru çıkış döndürürse, sistemi yeniden başlattıktan sonra komutun ilk çalıştırılmasının tekrar 2 satır yazdırdığı anlamına gelir. Böylece sistemler her yeniden başlatmadan sonra aynı davranışları gösterir (testlerime göre). Dosya detayları aşağıdaki gibidir:
-rw-r--r-- 1 root root ./usr/share/man/man8/systemd-resolved.service.8.gz
lrwxrwxrwx 1 root root ./usr/share/man/man8/systemd-resolved.8.gz -> systemd-resolved.service.8.gz
-rwxr-xr-x 1 root root ./lib/systemd/systemd-resolved
drwxr-xr-x 2 root root ./lib/systemd/system/systemd-resolved.service.d
-rw-r--r-- 1 root root ./lib/systemd/system/systemd-resolved.service
DÜZENLEME: Sorunu öneren herkese, bu belirli dosyalar için bu özel durumla ilgili olabilir: " sistem tarafından çözümlendi " örnek olarak verilebilir. Bu, diğer anahtar kelimeleri ararken de olur. Bu, ilk çalıştırma için yanlış sonuçlar veren başka bir örnektir:
root@localhost:/# find . -name "*apache*"
Burada kimse backport deposundan en son çekirdeği olan bir Debian 8'de bu sorunu kontrol edemiyor mu?
/lib/systemd
monte edilir? Ne tür bir dosya sistemi? Ayrı bir bağlama noktasıysa, saat kaçta monte edildi?
strace
? Hangi işletim sistemi üzerinde hatalı davranış gözlemlediniz? "Yukarıdaki gibi 0 veya iki sonuç döndürür" ile ne demek istiyorsun? Sıfır veya iki satır çıkış veya çıkış kodu 0 + iki satır? Yeni bir kabuk başlattıktan veya yeniden başlattıktan sonra tekrar olur mu? İlk aramanın yalnızca dosyaları döndürdüğü, ikincisinin ise dosya ve dizin döndürdüğü önemli olabilir.