У меня вопрос в моем уме. Я просто хочу знать, каков максимальный предел числа дочерних процессов, когда он создается процессом, используя системный вызов fork()? Я использую UBUNTU OS (12.04) с ядром 3.2.0-45-generic.Максимальное число дочерних процессов в Unix
ответ
Число процессов не по лимиту процесса, а по пользовательскому пределу.
В Linux вы можете использовать:
ulimit -u
сказать вам максимальный процессов пользователь может запускать и использовать -a
аргумент покажет вам все ограничения пользователей.
Программным,
#include <stdio.h>
#include <sys/resource.h>
int main()
{
struct rlimit rl;
getrlimit(RLIMIT_NPROC, &rl);
printf("%d\n", rl.rlim_cur);
}
где структура rlimit является:
struct rlimit {
rlim_t rlim_cur; /* Soft limit */
rlim_t rlim_max; /* Hard limit (ceiling for rlim_cur) */
};
От man:
RLIMIT_NPROC
Максимальное количество процессов (или, точнее, Linux, потоков), которые могут быть созданы для реального идентификатора пользователя вызывающего процесса. При столкновении с этим пределом fork (2) терпит неудачу с ошибкой EAGAIN.
Ответы уже есть, чтобы получить максимальный ток value.I хотел бы добавить, что вы можете установить этот предел, сделав изменения в /etc/security/limits.conf
sudo vi /etc/security/limits.conf
Затем добавьте эту строку в нижней части, что файл
hard nproc 1000
вы можете поднять это к тому, что номер, который вы хотите -
nproc
- максимальное количество процессов, которые могут одновременно существовать на машине.
, если вам нужно максимальное число процессов предела пользователей, этот код также работает:
#include "stdio.h"
#include "unistd.h"
void main()
{
printf("MAX CHILD ID IS :%ld\n",sysconf(_SC_CHILD_MAX));
}
Пожалуйста, не используйте 'void main()', если вы не находитесь в Windows, где вы, вероятно, не можете использовать 'sysconf()'. См. [Что должно быть 'main()' return в C и C++?] (Http://stackoverflow.com/questions/204476/what-should-main-return-in-c-and-c/18721336#18721336). Кроме того, стандарты используют '#include
- 1. Максимальное число дочерних процессов в Linux
- 2. Отслеживание дочерних процессов в Unix
- 3. Создайте несколько дочерних процессов в UNIX
- 4. Число дочерних процессов в родительском процессе C/C++, LINUX
- 5. По умолчанию поведение оболочки Unix относительно дочерних процессов при выходе?
- 6. Ожидание всех дочерних процессов перед выполнением возобновления родителем UNIX
- 7. Как я могу обеспечить максимальное число дочерних элементов в узле?
- 8. Обнаружение дочерних процессов
- 9. Сколько дочерних процессов создано?
- 10. Ожидание дочерних процессов
- 11. Многопроцессорная обработка дочерних процессов
- 12. Экспедиторские сигналы дочерних процессов
- 13. Спасти несколько дочерних процессов
- 14. Process.Kill() для дочерних процессов
- 15. Ожидание дочерних процессов
- 16. Запуск 3 дочерних процессов
- 17. C - Создание дочерних процессов
- 18. Несколько дочерних процессов
- 19. Максимальное количество процессов excel?
- 20. Порождение дочерних процессов в заставке
- 21. Исключение дочерних процессов в окнах
- 22. Создание дочерних процессов в Linux
- 23. Группа процессов для дочерних процессов библиотеки
- 24. Максимальное количество процессов в Linux
- 25. Hibernate - Получение исключение: максимальное число процессов (550) превысило
- 26. Воспроизведение дочерних процессов с Perl
- 27. Python Multiprocessing - число процессов
- 28. Unix процессов Диаграмма путаницы
- 29. Идентификатор группы процессов в UNIX
- 30. Список завершенных процессов в Unix
'ULIMIT -u' покажет вам максимальное количество процессов для пользователя. –
Но это то же самое, что и максимальное количество дочерних процессов, которые может создать процесс. Как пользователь, я могу запускать несколько процессов одновременно в фоновом режиме без создания дочернего процесса. – Prak
Это тот же самый лимит. –