我在本地运行一个 R 脚本,该脚本涉及打开大量文件,还生成大量临时文件并将它们存储在中/tmp/Rtmpxxxx
。最初它崩溃了,因为我的ulimit -n
设置太低,所以我ulimit -n
将 1024 增加到 1000000。
然而,R 脚本仍然崩溃:
Error in selectChildren(ac[!fin], -1) :
file descriptor is too large for select()
我检查了cat /proc/sys/fs/file-max
返回的结果,结果为 9223372036854775807,这大概是 64 位有符号整数的最大值。我肯定没有打开那么多文件,所以我想知道为什么仍然会出现错误?
sam@sam:~/$ 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) 256509
max locked memory (kbytes, -l) 8215701
max memory size (kbytes, -m) unlimited
open files (-n) 1000000
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) 256509
virtual memory (kbytes, -v) unlimited
file locks (-x) unlimited