Çekirdek öldürülmüş işlemlerin listesini nerede görebilirim?


33

Çekirdeğin hangi süreçleri öldürdüğünü kontrol etmenin bir yolu var mı? Bazen sunucuma giriş yapıyorum ve bütün gece çalışması gereken bir şeyin sadece 8 saat durduğunu görüyorum ve uygulamaların mı yoksa çekirdeklerin mi olduğundan emin değilim.

Yanıtlar:


30

Çekirdek bir işlemi öldürdüyse (sistemin belleği yetersiz kaldığı için), bir çekirdek günlük mesajı olacaktır. Check-in /var/log/kern.log(Debian / Ubuntu'da, diğer dağıtımlar çekirdek günlükleri farklı bir dosyaya, ancak genellikle /var/logLinux altında) gönderebilir .

OOM-katili (bellek dışı katili) tetiklenirse, yeterli sanal belleğiniz olmadığı anlamına gelir. Daha fazla takas (veya belki daha fazla RAM) ekleyin.

Bazı işlem çökmeleri, çekirdek günlüklerinde de kaydedilir (örneğin, bölümlendirme hataları).

İşlemler cron'dan başlatılmışsa, hata mesajlarını içeren bir postanız olmalıdır. İşlemler bir terminaldeki bir kabuktan başlatılmışsa, o terminaldeki hataları kontrol edin. screenSabah terminali tekrar görmek için bu işlemi gerçekleştirin . Bu, OOM-katilinin tetiklenmesi durumunda işe yaramayabilir, çünkü cron veya ekran işlemini de öldürmüş olabilir; Fakat eğer OOM-katiline rastlarsanız, düzeltmeniz gereken problem budur.


İplik öldürme mesajı nasıldır /var/log/kern.log?
Arı

12

İşlem Muhasebesi burada yardımcı olabilir.

Kısaca:

apt-get install acct

Ardından şöyle komutları deneyin:

lastcomm
sa

veya Ubuntu'da:

lastcomm -f /var/log/account/pacct
sa /var/log/account/pacct

Görmek:

GÜNCELLEŞTİRME

Garip, pacctdosya çıkış durumu hakkında bilgi vardır, ama ne lastcommde sayazdırmak gibi görünüyor.

Görebildiğim kadarıyla, bilgiye erişmek için kendi C programınızı yazmanız gerekir.

GÜNCELLEME 2

İşte çıkış kodunu basan bir versiyon.

Son iki alan, sinyalleme için "S" ve çıkış için "E" ve ardından sinyal numarası veya çıkış durumu şeklindedir.

Yani, sizin durumunuzda, muhtemelen bir SIGTERM olduğu anlamına gelen "S 15" i arıyorsunuz.

sleep                X mikel    stdin      0.00 secs Fri Mar 25 20:15 S  15

"E 0" ile karşılaştırıldığında, işlemin hatasız çıkıldığı anlamına gelir.

true                   mikel    stdin      0.00 secs Fri Mar 25 20:16 E   0

Sadece minimal olarak test edilmiştir.


-1

sudo hizmeti

Bu komut size, servislerin şu anda nelerin çalıştığını ve neyin başlatılmadığını veya durdurulmadığını söyleyecektir.

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.