今天写了个生成coredump的c++程序,发现单独执行程序时能正常生成coredump文件(ulimit -c设置为unlimited)。c++
可是在用systemd配置服务启动时发现不会生成coredump文件,systemd的service配置文件里已经添加了LimitCORE=infinity参数。spa
缘由及解决办法:code
查看coredump配置:it
# cat /proc/sys/kernel/core_pattern core
发现为默认设置。systemd不生成coredump的缘由是由于pattern里没设置路径,加上路径便可,如/tmp/core-%e-%p,便可解决问题配置