Каковы некоторые условия, которые могут вызвать ветвление (), или система () звонит для сбоя на Linux?

Вы также можете объявить том для своего рабочего пространства, в котором модули Python будут сохранены.

Из документации Che :

Вы можете добавлять тома либо с помощью панели пользователя, либо путем обновления конфигурации аппарата. Ниже приведен пример файла конфигурации:

"volumes": {
  "myvolume": {
    "path": "/absolute/path/in/workspace"
  }
}
blockquote>

6
задан Reed Hedges 13 May 2009 в 14:39
поделиться

2 ответа

nproc в /etc/security/limits.conf может ограничить количество процессов на пользователя.

Вы можете проверить наличие сбоев, проверив возврат от fork. 0 означает, что вы находитесь в дочернем элементе, положительное число - это pid дочернего элемента и означает, что вы находитесь в родительском элементе, а отрицательное число означает, что вилка не удалась. Когда fork не работает, он устанавливает внешнюю переменную errno. Вы можете использовать функции в errno.h, чтобы изучить его. Обычно я просто использую perror, чтобы вывести ошибку (с добавленным к ней текстом) в stderr.

#include <stdio.h>
#include <errno.h>
#include <unistd.h>

int main(int argc, char** argv) {
    pid_t pid;

    pid = fork();
    if (pid == -1) {
        perror("Could not fork: ");
        return 1;
    } else if (pid == 0) {
        printf("in child\n");
        return 0;
    };

    printf("in parent, child is %d\n", pid);

    return 0;
}
1
ответ дан 17 December 2019 в 00:14
поделиться

И как узнать, происходят ли какие-либо из них?

Проверьте значение errno , если результат (возвращаемое значение) -1

From страница руководства в Linux:

ВОЗВРАЩАЕМОЕ ЗНАЧЕНИЕ
В случае успеха PID дочернего процесса возвращается в родительском, а 0 возвращается в дочернем. В случае ошибки родительский процесс возвращается -1, дочерний процесс не создается, а значение errno устанавливается соответствующим образом.

ОШИБКА
EAGAIN
fork () не может выделить достаточно памяти для копирования родительских таблиц страниц и выделения структуры задачи для дочернего.
EAGAIN
Невозможно создать новый процесс, поскольку обнаружен предел ресурса RLIMIT_NPROC вызывающего объекта. Чтобы превысить этот предел, процесс должен иметь возможность CAP_SYS_ADMIN или CAP_SYS_RESOURCE.
ENOMEM
fork () не удалось выделить необходимые структуры ядра из-за нехватки памяти.

СООТВЕТСТВИЕ SVr4, 4.3BSD, POSIX.1-2001.

6
ответ дан 17 December 2019 в 00:14
поделиться
Другие вопросы по тегам:

Похожие вопросы: