在 Debian(以及其他 Linux 发行版)里,getconf 主要用来查询系统配置参数,其中就包括很多“限制(limits)”相关的值。
下面按常见用法说明。
getconf -a
这会列出所有可用的配置变量(包含 _POSIX_*、_XOPEN_*、以及系统限制)。
getconf OPEN_MAX # 一个进程可打开的最大文件数
getconf FILESIZEBITS # 支持的最大文件大小(位数)
getconf LINK_MAX # 一个文件的最大硬链接数
getconf NAME_MAX # 文件名最大长度
getconf PATH_MAX # 路径名最大长度
getconf PIPE_BUF # 原子写管道的最大字节数
getconf ARG_MAX # exec 时参数和环境的最大长度
getconf CHILD_MAX # 每个用户最大进程数
getconf LOGIN_NAME_MAX # 登录名最大长度
getconf NGROUPS_MAX # 一个用户可属于的最大组数
getconf _POSIX_VERSION
getconf _POSIX_C_SOURCE
getconf _XOPEN_VERSION
有些限制是文件系统相关的,需要指定路径:
getconf NAME_MAX /mnt/data
getconf PATH_MAX /home
如果你不写路径,默认使用的是当前目录所在文件系统。
getconf:ulimit:示例:
ulimit -n # 当前进程最大打开文件数
getconf OPEN_MAX
两者可能不一样,ulimit 通常更小。
虽然不是 getconf,但常一起用:
cat /proc/sys/fs/file-max # 系统级最大文件数
cat /etc/security/limits.conf # 用户级限制
getconf OPEN_MAX
ulimit -n
cat /proc/sys/fs/file-max
如果你有具体想查的限制(比如线程数、文件大小、共享内存等),可以告诉我,我可以直接给你对应命令。