Centos7

使用 systemd 啟用 coredump centos 7

  • November 11, 2021

經過一番Google搜尋後,我瀏覽了幾篇文章,但似乎沒有任何效果。

我正在使用 Centos 7。

讓我解釋一下到目前為止我做了什麼。

我一步一步跟著

http://www.kibinlabs.com/re-enabling-core-dumps-redhat-7/

之後,我可以生成核心轉儲,但前提是我手動啟動程序,但是,每當我啟動程序時

systemctl start <myprocess>

使用 SEGV 殺死後不會生成 coredump

kill -11 <pid>

var/log/messages 顯示它收到了 SEGV 信號,但我看不到核心轉儲。

核心核心模式也設置好了。

cat /proc/sys/kernel/core_pattern
/var/lib/coredumps/core-%e-sig%s-user%u-group%g-pid%p-time%t


coredump.conf 

cat /etc/sysctl.d/50-coredump.conf
Storage=both

cat  /etc/sysctl.d/99-sysctl.conf
fs.suid_dumpable = 1
kernel.core_uses_pid = 1

   Storage=both
   [root@server01 coredumps]# ls -l /etc/sysctl.d/50-coredump.conf
   lrwxrwxrwx 1 root root 26 Aug  6 13:51 /etc/sysctl.d/50-coredump.conf -> /etc/systemd/coredump.conf

我相信您可能正試圖殺死設置了 SUID 位的守護程序。

在這種情況下,您將需要使用fs.suid_dumpable = 2

要確保的另一件事是保存核心轉儲的整個路徑的權限具有適當的權限。

在您的情況下,這意味著使用者需要能夠在 on/var上執行/var/lib並能夠寫入/var/lib/coredumps.

這裡的使用者實際上是擁有被殺死程序的使用者,而不是殺死程序的使用者。

引用自:https://serverfault.com/questions/711333