首先需要了解core_pattern这个得用处,core_pipe_limit这个是与core_pattern配合使用的,且仅当core_pattern中的字符是以“|”开头时方才生效。
当core_pattern中的字符以“|”开头时,文件中的后续字符被当做一个命令来执行,这样生成的core dump不会生成文件而是作为这个程序的标准输入。这个程序充当了core文件处理程序(一般称之为管道core文件模式)
当配置成管道core文件模式时,内核通过管道搜集core信息,偶尔部分有用的数据信息要从崩溃程序的/proc/pid目录中活动。为了能够安全的获得数据,不能过早的清除崩溃程序的/proc/pid目录,而必须等待搜集数据信息完毕。反过来,如果用户空间的一个行为不正确的数据搜集程序从/proc/pid目录中获得数据就可能一直阻止内核对/proc/pid的崩溃进程进行回收。
core_pipe_limit这个文件定义了可以有多少个并发的崩溃程序可以通过管道模式传递给指定的core信息收集程序。如果超过了指定数,则后续的程序将不会处理,只在内核日志中做记录。0是个特殊的值,当设置为0时,不限制并行捕捉崩溃的进程,但不会等待用户程序搜集完毕方才回收/proc/pid目录(就是说,崩溃程序的相关信息可能随时被回收,搜集的信息可能不全)。发布时,默认值为0.
当core_pattern中的字符以“|”开头时,文件中的后续字符被当做一个命令来执行,这样生成的core dump不会生成文件而是作为这个程序的标准输入。这个程序充当了core文件处理程序(一般称之为管道core文件模式)
当配置成管道core文件模式时,内核通过管道搜集core信息,偶尔部分有用的数据信息要从崩溃程序的/proc/pid目录中活动。为了能够安全的获得数据,不能过早的清除崩溃程序的/proc/pid目录,而必须等待搜集数据信息完毕。反过来,如果用户空间的一个行为不正确的数据搜集程序从/proc/pid目录中获得数据就可能一直阻止内核对/proc/pid的崩溃进程进行回收。
core_pipe_limit这个文件定义了可以有多少个并发的崩溃程序可以通过管道模式传递给指定的core信息收集程序。如果超过了指定数,则后续的程序将不会处理,只在内核日志中做记录。0是个特殊的值,当设置为0时,不限制并行捕捉崩溃的进程,但不会等待用户程序搜集完毕方才回收/proc/pid目录(就是说,崩溃程序的相关信息可能随时被回收,搜集的信息可能不全)。发布时,默认值为0.