2

В академических целях я хотел бы воспроизвести сообщение об ошибке "больше никаких процессов" на моем терминале bash. Например:

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

Как я могу это сделать?

1 ответ1

1

Если вы хотите воспроизвести эту ошибку, вы можете просто запустить бомбу с первым родительским выходом, чтобы вернуть вас в свою оболочку:

Вы, вероятно, захотите убедиться, что ваша система применяет ограничение процесса, прежде чем делать это, в противном случае вы можете просто заморозить машину, а не получить оболочку, в которой можно набирать вещи и сообщать, что у вас больше нет процессов, которые нужно сделать что-нибудь. Сначала вы захотите проверить, сколько процессов вы обычно используете, чтобы выяснить, какой лимит установить.

В FreeBSD, вы будете редактировать /etc/login.conf и изменить maxproc по default , а затем установить его на unlimited root

В большинстве дистрибутивов Linux вы редактируете /etc/security/limits.conf и добавляете внизу строку, которая выглядит следующим образом: * hard nproc nnn , где nnn - количество процессов.

Затем make эту простую вилочную бомбу и запустите ее:

#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
}

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .