Por que não consigo iniciar mais de 1000 processos no Solaris 11?

3

Estou tentando lançar mais de 1000 processos, mas ele fica em 999.

por exemplo,

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

Em seguida, execute-o

$ ./launchsleep.sh 3000                                                                         
./launchsleep.sh:4: job table full
    
por Tim Swast 22.02.2013 / 23:51

2 respostas

5

Acontece que zsh (e a maioria dos outros shells) tem uma tabela de tarefas com tamanho máximo. Esta tabela acompanha os processos em segundo plano e, quando é preenchida, você não pode iniciar mais nenhum processo em segundo plano.

Minha solução alternativa era alterar meu script para iniciar processos do daemon em vez de vários processos em segundo plano.

por exemplo,

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

dosleep.sh:
#!/usr/bin/env zsh
nohup sleep 300 &

Além disso, como mencionou @Iain, o Solaris tem um limite no número de processos que um usuário pode iniciar (ulimit -u). No Solaris 11, para aumentar esse limite, edite / etc / project e aumente os processos project.max.

    
por 23.02.2013 / 00:51
7

A configuração ulimit -u pode estar em ação aqui.

    
por 23.02.2013 / 00:01

Tags