我的进程 cmd 很长,因为有很多参数。现在我想检查完整的 cmd。通过使用cat /proc/PROCESS_NUMBER/cmdline
,cmd 无法完全显示。还有其他方法可以在 linux 中准确查看完整的 cmd 吗?
答案1
你的命令行有多长?
如果文件大小在兆字节范围内,你也许可以重新编译内核,在文件ARG_MAX
中使用更大的文件linux-3.*/include/linux/limits.h
。我把
#define ARG_MAX 2097152 /* # bytes of args + environ for exec() */
(也可能有一种方法可以动态设置该限制,但我忘了如何做,而且我可能是错的)
我确实喜欢大ARG_MAX
限制,因为我偶尔会使用我的交互式 shell**/*.c
的全局扩展功能。zsh
不要输入太大的值ARG_MAX
;我猜你想让它小于可用 RAM 的 2%。
注意/proc/*/cmdline
包含空字节。你可以翻译它们,参见这。
附加物
如果出于某种原因您无法负担较大的命令行,请找到某种方法和惯例来避免使用如此大量的程序参数。例如,您可以修改调用的程序以从文件或其他来源(数据库?)读取某些内容。例如,一些 Unix 程序(例如 GCC)接受@
文件名从某个名为的文件中读取选项文件名。