ulimit - help和man bash提到的不同选项

时间:2015-08-07 12:04:08

标签: linux bash ubuntu ulimit

当我尝试在Ubuntu Server 12.04.5 LTS上获取最大套接字缓冲区大小(ulimit -b)时,ulimit工具会抛出此错误消息:

root@wsproducao:~# ulimit -b
-su: ulimit: -b: invalid option
ulimit: usage: ulimit [-SHacdefilmnpqrstuvx] [limit]

我从 man bash 中抓取了这个选项(-b)。

为什么ulimit的help命令中的选项与man bash中的选项有区别?

   ulimit [-HSTabcdefilmnpqrstuvx [limit]]
          Provides control over the resources available to the shell and to processes started by it, on systems that allow such control.  The -H and -S options specify that the
          hard  or  soft limit is set for the given resource.  A hard limit cannot be increased by a non-root user once it is set; a soft limit may be increased up to the value
          of the hard limit.  If neither -H nor -S is specified, both the soft and hard limits are set.  The value of limit can be a  number  in  the  unit  specified  for  the
          resource  or one of the special values hard, soft, or unlimited, which stand for the current hard limit, the current soft limit, and no limit, respectively.  If limit
          is omitted, the current value of the soft limit of the resource is printed, unless the -H option is given.  When more than one resource is specified, the  limit  name
          and unit are printed before the value.  Other options are interpreted as follows:
          -a     All current limits are reported
          -b     The maximum socket buffer size
          -c     The maximum size of core files created
          -d     The maximum size of a process's data segment
          -e     The maximum scheduling priority ("nice")
          -f     The maximum size of files written by the shell and its children
          -i     The maximum number of pending signals
          -l     The maximum size that may be locked into memory
          -m     The maximum resident set size (many systems do not honor this limit)
          -n     The maximum number of open file descriptors (most systems do not allow this value to be set)
          -p     The pipe size in 512-byte blocks (this may not be set)
          -q     The maximum number of bytes in POSIX message queues
          -r     The maximum real-time scheduling priority
          -s     The maximum stack size
          -t     The maximum amount of cpu time in seconds
          -u     The maximum number of processes available to a single user
          -v     The maximum amount of virtual memory available to the shell and, on some systems, to its children
          -x     The maximum number of file locks
          -T     The maximum number of threads

2 个答案:

答案 0 :(得分:0)

我想到的第一件事就是你的手册页被淹没......只是一个想法。我已经14.04了,并且已经很久没有改变了Linux:

ulimit [-SHabcdefilmnpqrstuvxT]

答案 1 :(得分:0)

来自help ulimit

  

[...]并非所有平台都提供所有选项。 [...]

没有RLIMIT_SBSIZE on linux,因此-b的{​​{1}}选项未在那里实现,仅在支持它的平台上实现(如bsd

不幸的是,这里的错误信息有点神秘,如果它是“ - b在此平台上不支持”或类似的东西会更好。

本案例中的手册页列出了所有可能的选项,使用提示似乎只显示可用选项。