Каково максимальное значение идентификатора процесса?

Каково максимальное значение идентификатора процесса?

Кроме того, возможно ли изменить идентификатор процесса?

3 Solutions collect form web for “Каково максимальное значение идентификатора процесса?”

В Linux вы можете найти максимальное значение PID для вашей системы:

$ cat /proc/sys/kernel/pid_max 

Это значение также может быть записано с использованием того же файла, однако значение может быть увеличено до теоретического максимума 32768 для 32-битных систем или 4194304 для 64 бит:

 $ echo 32768 > /proc/sys/kernel/pid_max 

Кажется, что нормативная практика большинства 64-битных систем устанавливает это значение в максимальное 32-битное значение, но это скорее согласуется, чем требование.

От man 5 proc :

 /proc/sys/kernel/pid_max This file (new in Linux 2.5) specifies the value at which PIDs wrap around (ie, the value in this file is one greater than the maximum PID). The default value for this file, 32768, results in the same range of PIDs as on earlier kernels. On 32-bit platfroms, 32768 is the maximum value for pid_max. On 64-bit systems, pid_max can be set to any value up to 2^22 (PID_MAX_LIMIT, approximately 4 million). 

И нет, вы не можете изменить PID работающего процесса. Он присваивается в качестве последовательного номера ядром в момент запуска процесса и является его идентификатором с этого времени. Единственное, что вы могли бы сделать, чтобы получить новый, – это заставить ваш код развить новый процесс и прервать его.

Другие ответы объяснили

  • /proc/sys/kernel/pid_max для Linux и
  • 99999 для FreeBSD

Но вопрос не указал операционную систему. Итак, вот некоторые другие:

  • В Solaris максимальное значение идентификатора процесса – это настраиваемый параметр ядра – pidmax в /etc/system – по умолчанию – 30 000, и его можно установить где угодно между 266 и 999999. Обратите внимание, что это не max_nprocs , который является настраиваемым параметром ядра с тонкой функцией.
  • На HP-UX 10 перестраиваемые ядра с именем process_id_min и process_id_max предписывают диапазон допустимых идентификаторов процессов.
  • В AIX идентификаторы процессов состоят из нескольких полей, включая «слот процесса» и поле «счетчик генерации». Максимально возможное значение равно 0x03FFFFFE, потому что поля занимают только нижние 26 бит целого числа, а бит # 0 всегда равен нулю, за исключением процесса # 1.
  • В OpenBSD максимальное значение – 32766.
  • В NetBSD максимальный размер 30000.

В FreeBSD значение PID находится между 0 и 99999 согласно intro(2) (link) . Вот цитата из руководства:

Идентификатор процесса.
Каждый активный процесс в системе однозначно идентифицируется неотрицательным целым числом, называемым идентификатором процесса. Диапазон этого идентификатора составляет от 0 до 99999.

Если вы хотите прочитать исходный код самостоятельно, то PID_MAX определяется в sys/sys/proc.h (ссылка) .

  • Как переключиться на процесс других пользователей?
  • Кнопка «Убить самый большой процесс»
  • Сценарий, чтобы взять pid, дать имя cmd, сетевые подключения, дерево процессов, родительский / дедушка / ребенок
  • Можно ли скопировать приостановленный процесс?
  • Почему процесс tee все еще работает?
  • Как узнать, что процесс заканчивается?
  • как приостановить другие не связанные процессы, чтобы позволить процессам, заинтересованным в занятии ЦП?
  • Заставляет ли приложение освобождать выделенную память?
  • Являются ли состояния процессов, которые готовы и планируют ждать «S»?
  • В чем разница между pidof и pgrep?
  • Какой процесс имеет PID 0?
  • Interesting Posts

    Как вы получаете доступ к содержимому предыдущего монтирования после переключения на другой раздел?

    Получить список пакетов, которые предоставляют (APT)

    MySQL расположение базы данных

    Как получить команду find и rename для работы с подкаталогами?

    Запись Minecraft с помощью recordmydesktop на Linux Mint 12 64bit

    Realtek RTL8111 Сетевая карта не работает на Ubuntu 14.04

    rsync поддерживать структуру папок данной точки

    Файлы отображаются в другом часовом поясе после передачи на другой компьютер (хотя оба компьютера имеют одинаковый часовой пояс)

    Изменение конца строки всякий раз, когда она содержит определенную строку

    Как подключить гостя KVM к Интернету с помощью беспроводной сети

    распределенная файловая система, которая хорошо работает с несколькими небольшими файлами

    Отключить аппаратное обеспечение ad hoc

    Как восстановить домашнюю резервную копию в почти новый Debian?

    Копирование файлов NFS Linux на стандартный внешний жесткий диск пользователя

    Удаленная сессия Xfce в отдельной консоли?

    Linux и Unix - лучшая ОС в мире.