在 Debian(及其他 Linux 发行版)中,getconf 常用于查询系统或 POSIX 规定的限制值(如最大进程数、文件大小、路径长度等)。下面按常见用法说明。
getconf LIMIT_NAME
或在特定路径下查询:
getconf LIMIT_NAME PATH
getconf LONG_BIT
输出示例:
64
getconf WORD_BIT
getconf _NPROCESSORS_CONF # 配置的 CPU 数
getconf _NPROCESSORS_ONLN # 在线 CPU 数
getconf NAME_MAX / # 文件名最大长度
getconf PATH_MAX / # 路径最大长度
getconf LINK_MAX / # 硬链接最大数
getconf OPEN_MAX # 单进程可打开的最大 fd 数
getconf CHILD_MAX # 单用户最大子进程数
注意:
OPEN_MAX/CHILD_MAX在某些系统中可能返回_POSIX_*最小值。
getconf -agetconf -a
会列出所有 getconf 支持的变量,包括:
示例片段:
LINK_MAX 65000
MAX_CANON 4096
MAX_INPUT 4096
NAME_MAX 255
PATH_MAX 4096
PIPE_BUF 4096
ulimit 的区别(很重要)| 工具 | 作用范围 | 说明 |
|---|---|---|
getconf |
系统 / POSIX 限制 | 编译期和系统级限制 |
ulimit |
当前 shell / 进程 | 用户资源限制(runtime) |
例如:
ulimit -n # 当前 shell 打开文件数限制
getconf OPEN_MAX
| 需求 | 命令 |
|---|---|
| 文件名太长 | getconf NAME_MAX / |
| 路径太长 | getconf PATH_MAX / |
| 线程数上限 | getconf THREAD_THREADS_MAX |
| 最大文件大小 | getconf FILESIZEBITS / |
| CPU 核心数 | getconf _NPROCESSORS_ONLN |
如果 getconf 不够,可看:
cat /proc/sys/fs/file-max
cat /proc/sys/kernel/pid_max
如果你有具体想查的限制(比如“最大线程数”“最大文件描述符”),可以直接告诉我,我给你精确命令。