Ders 1.61: Çöken bir programı strace ile izlemek
Yapılandırma dosyası tam oradayken 'cannot load configuration': belirsiz bir hata iletisi hangi dosyayı, hangi yolu, hangi izni gizler. strace bir programın çekirdeğe yaptığı her isteği ve her yanıtı gösterir; böylece gerçek neden ENOENT ya da EACCES ile biten tek bir satır olarak ortaya çıkar. Laboratuvarda Northwind'in gece rapor işi üç farklı nedenle üç kez çöküyor. Her başarısızlığı tek bir sistem çağrısına kadar izliyor, düzeltiyor ve raporun yazıldığını doğruluyorsun.
18 dk
Bu derste öğreneceklerin
- Sistem çağrısının ne olduğunu açıklamak
- Bir programı strace altında çalıştırıp izi kaydetmek
- Bir izi -e trace= ile süzmek
- openat ve connect sonuçlarını okumak (ENOENT, EACCES, ECONNREFUSED)
- Olağan gürültüyü gerçek hatadan ayırmak
Temel terimler
- Sistem çağrısı
- Bir programın çekirdekten isteği: bir dosya aç, bir sokete bağlan, bir program başlat.
- strace
- Bir programı çalıştıran (ya da birine bağlanan) ve her sistem çağrısını argümanları ve sonucuyla yazan araç.
- errno
- Başarısız bir çağrının döndürdüğü hata kodu; -1 ve bir adla gösterilir.
- ENOENT / EACCES
- Böyle bir dosya ya da dizin yok / izin reddedildi.
- ECONNREFUSED
- O adres ve portta hiçbir şey dinlemiyor (ya da bir güvenlik duvarı reddediyor).
- -e trace=
- Yalnızca adı verilen çağrıları ya da %file ve %network gibi sınıfları gösterir.
← cron yerine zamanlayıcılar · Tüm dersler · Kabuk geçmişi ve araç izleri →