解决思路:
1、core的生成路径已被配置,确认非空 /proc/sys/kernel/core_pattern
2、core文件大小限制也去除了ulimit –c core文件的大小限制也设置成了unlimited
3、/proc/sys/fs/suid_dumpable已设置为1,防止非本用户组的文件,无权限导致
4、不使用systemctl启动进程,也能产生core
5、查看进程文件的limits, cat /proc/pid/limits ,发现Max core file size的软限制大小为0
6、查阅资料https://man7.org/linux/man-pages/man5/core.5.html,
systemd作为初始化框架,会决定其服务进程是否产生core,所以这里软限制soft limit变成了0。
systemd服务设置LimitCORE=infinity,infinity表示无限大。
https://man7.org/linux/man-pages/man5/systemd.exec.5.html 可以查看其他限制
7、由于我的systemd服务是通过chkconfig自动生成的,即使改掉了/run/systemd/generator.late/test_hr.service里配置,执行完systemctl daemon-reload后, service配置又会被改回去。
可以修改全局配置文件/etc/systemd/system.conf,加上DefaultLimitCORE=infinity,再执行systemctl daemon-reexec是其生效。
至此,我的systemd程序可以生成core文件了
标签:core,systemd,infinity,文件,systemctl,proc From: https://www.cnblogs.com/ho966/p/17413297.html