我正在尝试为特定的pid生成coredump。 我尝试使用ulimit更改核心文件大小限制,但它只会在/ proc / self / limits(适用于shell)中更改。
那么我如何编辑特定的pid呢? 基本上我必须改变“最大核心文件大小=无限制”
注意:
1)我们的linux版本没有prlimit。
2)即使是下面的命令也没有帮助
echo -n "Max core file size=unlimited:unlimited" > /proc/1/limits
谢谢,
答案 0 :(得分:1)
限制
如果要修改core_file限制,可以输入
prlimit --pid ${pid} --core=soft_limit:hard_limit
prlimit的帮助页面是:
Usage:
prlimit [options] [-p PID]
prlimit [options] COMMAND
General Options:
-p, --pid <pid> process id
-o, --output <list> define which output columns to use
--noheadings don't print headings
--raw use the raw output format
--verbose verbose output
-h, --help display this help and exit
-V, --version output version information and exit
Resources Options:
-c, --core maximum size of core files created
-d, --data maximum size of a process's data segment
-e, --nice maximum nice priority allowed to raise
-f, --fsize maximum size of files written by the process
-i, --sigpending maximum number of pending signals
-l, --memlock maximum size a process may lock into memory
-m, --rss maximum resident set size
-n, --nofile maximum number of open files
-q, --msgqueue maximum bytes in POSIX message queues
-r, --rtprio maximum real-time scheduling priority
-s, --stack maximum stack size
-t, --cpu maximum amount of CPU time in seconds
-u, --nproc maximum number of user processes
-v, --as size of virtual memory
-x, --locks maximum number of file locks
-y, --rttime CPU time in microseconds a process scheduled
under real-time scheduling
Available columns (for --output):
DESCRIPTION resource description
RESOURCE resource name
SOFT soft limit
HARD hard limit (ceiling)
UNITS units
For more details see prlimit(1).
答案 1 :(得分:0)
我总是使用ulimit命令执行此操作:
$ ulimit -c unlimited
在我的Linux发行版(ubuntu 16.04)上,核心文件保留在此目录中:
/var/lib/systemd/coredump/
如果您的发行版基于systemd,您可以通过修改此文件上的模式来设置此目录:
$ cat /proc/sys/kernel/core_pattern
答案 2 :(得分:0)
请阅读此信息:
$ man 5 core
检查与/ proc / sys / kernel / core_pattern相关的信息。
如前所述,您可以定义转储所有核心文件的目录,使用&#34; echo&#34;修改此文件的内容。命令。例如:
$ echo "/var/log/dumps/core.%e.%p" > /proc/sys/kernel/core_pattern
这将转储/var/log/dumps/core.%e.%p上的所有核心,其中%e是可执行文件名的模式,而%p模式是转储进程的pid。
希望您可以使用它来定制自己的需求。