linux - 在 Debian 9 上启用核心转储

标签 linux debian coredump debian-stretch

我注意到我的 Debian 9 VM 没有使用 kill -s 6 <pid> 创建核心转储.调查了 ulimit、suid_dumpable、core_pattern——它们对我来说似乎没问题。 kill 后的消息不显示 (core dumped),并且工作目录或 core_pattern 中指定的目录中都没有核心文件。须藤没有帮助。我缺少任何配置部分吗?

配置:

   Static hostname: <hostname>
         Icon name: computer-vm
           Chassis: vm
        Machine ID: <redacted>
           Boot ID: <redacted>
    Virtualization: microsoft
  Operating System: Debian GNU/Linux 9 (stretch)
            Kernel: Linux 4.19.128-dcc08d126b2b
      Architecture: x86-64
<user>@<hostname>:~$ ulimit -Ha
core file size          (blocks, -c) unlimited
data seg size           (kbytes, -d) unlimited
scheduling priority             (-e) 0
file size               (blocks, -f) unlimited
pending signals                 (-i) 56048
max locked memory       (kbytes, -l) 64
max memory size         (kbytes, -m) unlimited
open files                      (-n) 1048576
pipe size            (512 bytes, -p) 8
POSIX message queues     (bytes, -q) 819200
real-time priority              (-r) 0
stack size              (kbytes, -s) unlimited
cpu time               (seconds, -t) unlimited
max user processes              (-u) 56048
virtual memory          (kbytes, -v) unlimited
file locks                      (-x) unlimited
<user>@<hostname>:~$ ulimit -Sa
core file size          (blocks, -c) 100000
data seg size           (kbytes, -d) unlimited
scheduling priority             (-e) 0
file size               (blocks, -f) unlimited
pending signals                 (-i) 56048
max locked memory       (kbytes, -l) 64
max memory size         (kbytes, -m) unlimited
open files                      (-n) 1024
pipe size            (512 bytes, -p) 8
POSIX message queues     (bytes, -q) 819200
real-time priority              (-r) 0
stack size              (kbytes, -s) 8192
cpu time               (seconds, -t) unlimited
max user processes              (-u) 56048
virtual memory          (kbytes, -v) unlimited
file locks                      (-x) unlimited
<user>@<hostname>:~$ cat /proc/sys/fs/suid_dumpable
1
<user>@<hostname>:~$ cat /proc/sys/kernel/core_pattern
/opt/core/%e.SIG-%s.%p.core

例子:

<user>@<hostname>:~$ sleep 500 &
[1] 14259
<user>@<hostname>:~$ kill -s 6 14259
[1]+  Aborted                 sleep 500
<user>@<hostname>:~$ ls -la /opt/core/
total 8
drwxr-xr-x 2 root root 4096 Jun  8 15:27 .
drwxr-xr-x 6 root root 4096 Jun  8 15:27 ..
<user>@<hostname>:~$ ls -la | grep core
<user>@<hostname>:~$

最佳答案

也许你的系统被 systemd 弄乱了。在这种情况下,您必须安装 systemd-coredump:

# apt-get install systemd-coredump 

接下来您可以使用 coredumpctl 检查核心转储。

# sleep 100
^\Quit (core dumped)
# coredumpctl list
TIME                            PID   UID   GID SIG COREFILE  EXE
Tue 2021-06-15 18:00:58 CEST  21065     0     0   3 present   /bin/sleep

它们位于/var/lib/systemd/coredump

# ll /var/lib/systemd/coredump/
total 68
-rw-r----- 1 root root 26605 Jun 15 18:00 core.sleep.0.af2fa0f571f84f279c4510ee3281a787.21065.1623772857000000.lz4

关于linux - 在 Debian 9 上启用核心转储,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/67989146/

相关文章:

c++ - 在 amd64 Debian 上编译 i386 二进制文件?

R 在启动时立即崩溃 : caught segfault, 地址(nil),原因 'memory not mapped'

c++ - 为 C++ 应用程序启用核心转储(通过 apache -> Perl -> C++ 调用)

php - 从 Symfony 命令运行 Linux 命令

linux - 如何grep所有带有特定字母的单词?

django+nginx+gunicorn 与 Cerbot 转换为 HTTPS 的问题

mongodb - 如何使用 libcurl4 安装 mongodb?

go - 如何在 Raspberry pi 1 model B 中为 FreeBSD 交叉编译 go 应用程序

python - 什么用户应该拥有我的 Python 脚本和应用程序目录?

c - Linux 内核 3.16 上的 Moxa RealTTY 模块编译错误