GNU/Linux >> Znalost Linux >  >> Linux

Změna umístění výpisu jádra

Ano to je. Můžete změnit /proc/sys/kernel/core_pattern k definování názvu cesty použitého ke generování corefile. Více viz man core

příklad:

echo '/tmp/core_%e.%p' | sudo tee /proc/sys/kernel/core_pattern    # `tee' instead of > so that
                                                                   # opening happens in the
                                                                   # elevated process

by způsobilo, že všechny budoucí výpisy jádra budou generovány v /tmp a bude se jmenovat core_[program].[pid]


Než budete postupovat podle pokynů v přijaté odpovědi, může být dobré zkontrolovat obsah /proc/sys/kernel/core_pattern abyste zjistili, zda se používá systém Redhat abrt.

-> cat /proc/sys/kernel/core_pattern
|/usr/libexec/abrt-hook-ccpp %s %c %p %u %g %t e

Pokud se to používá, pak již máte poměrně rozsáhlé schéma pro správu základních souborů, kterému byste chtěli porozumět, než jej přepíšete.

Stručně řečeno, abrt:

  1. sem umístí základní soubory:/var/spool/abrt/
  2. má grafické rozhraní, které se spouští příkazem abrt-gui
  3. rozšíří soubor core o další informace o neúspěšném procesu.
  4. je nakonfigurován pomocí tohoto souboru:/etc/abrt/abrt-action-save-package-data.conf

Častým kamenem úrazu při jeho používání je změna tohoto řádku v konfiguračním souboru:

ProcessUnpackaged = no

Změňte toto na yes, abyste zachytili základní soubory z vašich homebrew procesů, jinak budou zachycovány pouze základní soubory z programů nainstalovaných správcem balíčků.

[UPRAVIT odpověď na to, jak používat coredump]Chcete-li prozkoumat výpis jádra, udělám toto:

cd /var/spool/abrt/XXXXXXX
gdb $(cat executable) coredump

Možná existuje lepší způsob, jak to udělat, ale gdb mi dobře posloužil, takže jsem nehledal jiné způsoby. Stačí nahradit XXXXXXX složkou, která obsahuje váš soubor coredump. Příkaz gdb je připraven k vyjmutí a vložení.

Reference:

Kniha Redhat

Fórum CentOS


Linux
  1. Linux – propojení /proc/mnt s /proc/mounts?

  2. Linux – kdy použít /dev a /sys pro komunikaci mezi uživatelským prostorem a jádrem?

  3. Linux – Proč jsou úpravy Core_pattern omezeny?

  1. /proc/[pid]/pagemaps a /proc/[pid]/maps | linux

  2. Příkaz pro čištění mezipaměti NFS?

  3. změny parametrů modulu jádra (pomocí /sys/module)

  1. Kdy mám použít /dev/shm/ a kdy /tmp/?

  2. mount dev, proc, sys v prostředí chroot?

  3. Jak zjistit, ze které složky běží proces?