为什么我不能在Solaris 11中启动超过1000个进程?

我正在尝试启动超过1000个进程,但是它的结束时间是999。

例如

#!/usr/bin/env zsh for i in {1..$1} ; do sleep 300 & done 

然后运行它,

 $ ./launchsleep.sh 3000 ./launchsleep.sh:4: job table full 

ulimit -u设置可能在这里工作。

事实certificate,zsh(和大多数其他的shell)有一个最大大小的作业表。 这张表跟踪后台进程,当它填满时,你不能启动更多的后台进程。

我的解决方法是改变我的脚本启动守护进程,而不是一堆后台进程。

例如

 launch.sh: #!/usr/bin/env zsh for i in {1..$1} ; do ./dosleep.sh done dosleep.sh: #!/usr/bin/env zsh nohup sleep 300 & 

另外,正如@Iain所提到的,Solaris对用户可以启动的进程数量有限制(ulimit -u)。 在Solaris 11中,要增加这个限制编辑/ etc / project并增加project.max-processes。