Son sistemd yükseltmelerinden sonra çekirdek dökümü yok mu?


12

Üzerinde çalıştığım bir programı yürüttüğümde, aşağıdaki iletiyle başarısız olur:

...
Aborted (core dumped)

Ancak, çekirdek dökümü oluşturulmaz. Çekirdek dökümler daha önce yazılmıştı ve onunla ilgili hiçbir şeyi değiştirmediğimi hatırlamıyorum.

Koştuğumda ulimit -ageri dönüyorum,

$ ulimit -a
core file size          (blocks, -c) unlimited
...

Diğer noktalar,

  • Kullanıcının geçerli dizinde dosya oluşturabildiğini doğruladım.
  • Hakkında okudum /proc/sys/fs/suid_dumpable. Şu anda, makinemde 0 olarak ayarlanmış. 1 veya 2 olarak değiştirmeye çalıştım ama fark yok.
  • Ayrıca programı root olarak çalıştırmayı denedim, ama bu da bir fark yaratmadı.

Ne yazık ki, son başarılı çekirdek dökümü ne zaman üretebileceğimi hatırlamıyorum.

Yanıtlar:


8

Üzerindeki dokümanlardan coredump.conf,

Satıcı tarafından sağlanan bir yapılandırma dosyasını devre dışı bırakmak için önerilen yol, /dev/nullyapılandırma dizinine /etc/satıcı yapılandırma dosyasıyla aynı dosya adına sahip bir simge bağlantısı yerleştirmektir .

sudo ln -s /dev/null /etc/sysctl.d/coredump.conf
sudo systemd-sysctl 

Systemd'den beri işler farklı şekilde yönetiliyor.


Vay canına, haklısın! Çok geçmeden systemd'e geçtim. sudo systemd-coredumpctltüm eksik çekirdek dökümlerini gösterir. Çözümünüz ancak bir sistem yeniden başlatıldıktan sonra çalıştı.
Philipp Claßen

1
systemd's systemd-sysctl.servicesadece çalışır sysctldeğişiklikleri elle rerunning çizme doğru noktada ve kolları. Ve ne için olduklarını ve içeriklerini soruşturmadan yapılandırma dosyaları oluşturmaya / üzerine yazmayın.
vonbrand

1
Dosya yeniden adlandırılmış gibi görünüyor 50-coredump.conf, geçerli önyüklemedeki ayarları uygulamak için sysctl ayarını el ile değiştirmek zorunda kaldım, bkz. Stackoverflow.com/q/2065912/427545 .
Lekensteyn

2
Varsayılanı geri yüklemek için boş bir dize ayarlamayın, bunun yerine şunu kullanın:sysctl -w kernel.core_pattern="core"
Lekensteyn

2

Sen kullanmak isteyebilirsiniz coredumpctliçin komut bunun üzerinde çekirdek dökümü veya çalışma gdb almak. Onlarla başa çıkmanın 'sistem onaylı' yöntemi budur. : - /

Belli bir anlamda, systemd'in tüm bunları yakalaması hoş bir şey, çünkü bunları bir süre sonra otomatik olarak silecek ve hata raporları için çökme dökümlerini yüklemeyi de kolaylaştıracak.

Ancak, coredumps'ın sistemd dahil olmadan önce nasıl çalıştığını bilen insanlar için bildirim ya da ipuçları yolunda çok az şey olan sarsıcı bir değişiklikti. Ayrıca, coredumpctl'i kullanmak için talimatlar içeren 'core.pid.txt' adlı bir dosyayı bırakmak ve .txtdosyaların oluşturulmasını nasıl kapatacağınız bile büyük bir yardımcı olurdu, bir süre için dosya sistemi.

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.