Estou executando um script csh que chama unlimit
e limit
antes de executar um modelo científico. O script parece algo assim (truncado por brevidade):
#!/bin/csh -f
# ...
unlimit
limit
/usr/bin/time $BLD/$EXEC # Where '$BLD/$EXEC' is the path to the model
date
exit
A execução do script produz o seguinte erro:
unlimit
unlimit: memorylocked: Can't remove limit
unlimit: maxproc: Can't remove limit
unlimit: openfiles: Can't remove limit
Verificando ulimit
do Bash:
$ ulimit -a
core file size (blocks, -c) 0
data seg size (kbytes, -d) unlimited
scheduling priority (-e) 0
file size (blocks, -f) unlimited
pending signals (-i) 63711
max locked memory (kbytes, -l) 64
max memory size (kbytes, -m) unlimited
open files (-n) 1024
pipe size (512 bytes, -p) 8
POSIX message queues (bytes, -q) 819200
real-time priority (-r) 0
stack size (kbytes, -s) 8192
cpu time (seconds, -t) unlimited
max user processes (-u) 63711
virtual memory (kbytes, -v) unlimited
file locks (-x) unlimited
Tentando unlimit
(sem especificar nenhum recurso) do csh:
$ sudo csh
# unlimit
unlimit: memorylocked: Can't remove limit
unlimit: maxproc: Can't remove limit
unlimit: openfiles: Can't remove limit
A saída de limit
de csh e a tentativa de unlimit
com recursos especificados:
$ sudo csh
# whoami
root
# limit
cputime unlimited
filesize unlimited
datasize unlimited
stacksize 8192 kbytes
coredumpsize 0 kbytes
memoryuse unlimited
memorylocked 64 kbytes
maxproc 63711
openfiles 1024
# unlimit openfiles
unlimit: openfiles: Can't remove limit
# unlimit memorylocked
unlimit: memorylocked: Can't remove limit
Estou executando o Ubuntu 14.04:
$ lsb_release -a
No LSB modules are available.
Distributor ID: Ubuntu
Description: Ubuntu 14.04.1 LTS
Release: 14.04
Codename: trusty
Acredito que a execução unlimit
deva remover todas as limitações de recursos antes de executar o modelo, e a saída de limit
deve verificar isso. Por que o usuário root não conseguiria remover as limitações? O unlimit
deveria ser executado apenas como root?