如何在Docker容器中获取最大数量的subprocess?

我试图在一个Docker容器中运行以下程序,该容器以--privileged

 root@1df00aaf673d:~# cat > sysconf_test.c #include <unistd.h> #include <errno.h> #include <stdio.h> int main() { long n = sysconf(_SC_CHILD_MAX); printf("%ld %d\n", n, errno); return 0; } root@1df00aaf673d:~# gcc sysconf_test.c ; ./a.out -1 0 

通过sysconf手册页 ,“如果name对应于最大或最小限制,并且该限制是不确定的,则返回-1,并且不更改errno。 有没有办法让它确定,也许通过传递一个选项到docker run命令?

我会回答我自己的问题:看起来, sysconf返回-1L为“无限”,虽然手册页不拼出来:

 [root@llg00amn ~]# ulimit -u 120996 [root@llg00amn ~]# docker run -ti debian /bin/bash root@5668a7acb957:/# ulimit -u unlimited 

ulimit设置为实际数字后,程序运行正常,并返回正确的结果。