Ricerca tra la vecchia roba

Ulimit

Posted: Giugno 18th, 2007 | Author: | Filed under: Programmazione | Commenti disabilitati su Ulimit

Capita che uno programma e capita anche che uno sbagli e si ritrovi ad usare il mitico debugger gnu, gdb, ma di default Ubuntu non te li crea i file core, che altro non sono che dump della memoria di un programma!Per questo viene in aiuto il comando built-in ulimit di cui copio la parte che potete trovare nel manuale della bash (man 1 bash)

 ulimit [-SHacdefilmnpqrstuvx [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 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
              -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
              -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
              -x     The maximum number of file locks

              If  limit  is given, it is the new value of the specified resource (the -a option is display only).  If no
              option is given, then -f is assumed.  Values are in 1024-byte increments, except for -t, which is in  sec‐
              onds, -p, which is in units of 512-byte blocks, and -n and -u, which are unscaled values.  The return sta‐
              tus is 0 unless an invalid option or argument is supplied, or an error occurs while setting a new limit.

Nel caso mio bisogna impostare con il flag -c la dimensione del core per il processo (senza restituisce il limite attuale cioé 0). Di default sono queste i valori preimpostati

🙂 $ ulimit -a
core file size          (blocks, -c) 0
data seg size           (kbytes, -d) unlimited
scheduling priority             (-e) 20
file size               (blocks, -f) unlimited
pending signals                 (-i) unlimited
max locked memory       (kbytes, -l) unlimited
max memory size         (kbytes, -m) unlimited
open files                      (-n) 1024
pipe size            (512 bytes, -p) 8
POSIX message queues     (bytes, -q) unlimited
real-time priority              (-r) 0
stack size              (kbytes, -s) 8192
cpu time               (seconds, -t) unlimited
max user processes              (-u) unlimited
virtual memory          (kbytes, -v) unlimited
file locks                      (-x) unlimited


Comments are closed.