Reproduzir erro "não há mais processos"

2

Para fins acadêmicos, gostaria de reproduzir a mensagem de erro "não há mais processos" no meu terminal bash. Por exemplo:

$cp file1.txp file2.txt
bash: no more processes

Como posso fazer isso?

    
por user 16.03.2016 / 18:39

1 resposta

1

Se você quiser reproduzir esse erro, provavelmente poderá simplesmente iniciar uma fork fork com o primeiro pai saindo para voltar ao seu shell:

Você provavelmente desejará garantir que seu sistema aplique um limite de processo antes de fazer isso. Caso contrário, você pode simplesmente congelar a máquina em vez de obter um shell no qual possa digitar coisas e informar que você não tem mais processos deixou de fazer qualquer coisa. Você vai querer verificar quantos processos você está usando normalmente primeiro para descobrir o limite a ser definido.

No FreeBSD, você editará /etc/login.conf e alterará o maxproc on default e então o definirá como unlimited on root .

Na maioria das distribuições Linux, você editará /etc/security/limits.conf e adicionará uma linha na parte inferior assim: * hard nproc nnn , em que nnn é o número de processos.

Então make esta simples bifurcação e execute-a:

#include <unistd.h>
#include <stdlib.h>

int main()
{
    int pid;
    pid = fork();
    if (pid) {
        // parent
        exit(0);
    } else {
        // child
        while (1) {
            fork();
        }
    }
    return 0; // we'll never get here
}
    
por 28.09.2017 / 04:57

Tags