Erro de script “fork: retry: Resource temporariamente unavailable” .. as linhas com falha serão tentadas novamente?

0

Estou executando um script de ping com chamadas de ping de fundos.

#!/bin/bash for ip in $(seq 100 210); do ping x.x.x.$ip -c1 |grep "bytes from" |cut -d " " -f4|cut -d ":" -f1 & done Se eu receber o erro fork: retry: Resource temporarily unavailable durante uma iteração do loop, essa iteração falhou irreversivelmente ou meu script tentará executar novamente automaticamente quando os recursos estiverem disponíveis?

    
por Info5ek 17.10.2016 / 08:30

1 resposta

2

O SO não pode reiniciar um comando que falhou por conta própria. Você poderia, no entanto, criar um mecanismo desse tipo em seu script. Quando o fork falha, ele retorna -1 e o processo filho não é criado. O erro acima é devido a EAGAIN . verificar limites de recursos (ulimit e memória). seções relevantes das páginas man abaixo -

RETURN VALUE
        On  success,  the  PID  of the child process is returned in  the parent, 
and 0 is returned in the child.  On failure, -1 is returned in
 the parent, no child process is created, and errno is set appropriately.

EAGAIN fork() cannot allocate sufficient memory to copy the parent's page tables and 
allocate a task structure for the child.

EAGAIN It was not possible to create a new process because the caller's RLIMIT_NPROC 
resource limit was  encountered.   To  exceed  this  limit,  the
process must have either the CAP_SYS_ADMIN or the CAP_SYS_RESOURCE capability.
    
por 17.10.2016 / 10:49