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.