как ulimit работает в Linux?

Я узнаю о ulimit прямо сейчас, и это немного сбивает с толку.

Я запускаю с этого как свое значение по умолчанию ulimit.

test@ubuntu:~$ ulimit -n
1024

Я вижу свой жесткий и мягкий предел:

test@ubuntu:~$ ulimit -Sn
1024
test@ubuntu:~$ ulimit -Hn
65536

Если я делаю ниже, я установил ulimit на свой жесткий предел.

test@ubuntu:~$ ulimit -n hard
test@ubuntu:~$ ulimit -n
65536

Но если я пытаюсь изменить его на свой мягкий предел, это не работает. Это все еще твердо.

test@ubuntu:~$ ulimit -n soft
test@ubuntu:~$ ulimit -n
65536

У меня есть два вопроса:

  1. Почему я не могу опустить его на мягкий предел.
  2. Каково различие между этими двумя ниже? Каждый показывает мне неограниченный другие шоу 1024. (Я запустил новую оболочку, чтобы быть уверенным.)

    test@ubuntu:~ $ ulimit
    неограниченный
    test@ubuntu:~ $ ulimit-n 1024

Выполнение Настольного выпуска Ubuntu15 со средой удара по умолчанию.

Спасибо

0
задан 14 September 2015 в 04:01

1 ответ

возможно, полезный? возможно, потому что Вы являетесь некорневыми?

"удар человека"

дает это среди другого:

 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

          If limit is given, and the -a option is not used, limit is the new value of the specified resource.  If no option is given, then -f is assumed.  Values are in 1024-byte increments, except for -t, which is in seconds; -p, which is in units of 512-byte blocks; and -T, -b, -n, and -u, which  are  unscaled values.  The return status is 0 unless an invalid option or argument is supplied, or an error occurs while setting a new limit.
1
ответ дан 28 July 2019 в 15:24

Другие вопросы по тегам:

Похожие вопросы: