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

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

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

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 (ссылка) .

  • Как узнать, что процесс заканчивается?
  • В чем разница между pidof и pgrep?
  • Есть ли утилита для создания диаграммы Ганта для детей процесса?
  • Сценарий, чтобы взять pid, дать имя cmd, сетевые подключения, дерево процессов, родительский / дедушка / ребенок
  • Что определяет, может ли исполняемый файл запускаться в разных независимых процессах одновременно?
  • Нет CPU в таблице Process в системном мониторе
  • Найдите каталог из относительного пути в выводе ps
  • Что такое `gom- * miner` процессы?
  • «Прекращено» относится к «заблокированному» состоянию?
  • Как проверить, сколько времени работает процесс?
  • Процессы nonsudo kill соответствуют строке
  • Interesting Posts

    Как следовать символическим ссылкам в NFS?

    Как разрешить «gitolite writeable» всем?

    Как переместить файл рекурсивно на основе размера и структуры

    Могут ли неформатированные разделы иметь UUID?

    KVM – список снимков в порядке их создания

    Установить файловую систему только для чтения и перенаправить записи в ОЗУ?

    У mc (Midnight Commander) есть фавориты для каталогов?

    Можно ли сделать загрузочное устройство с несколькими дистрибутивами Linux?

    Bash и / или Zsh: Возможно ли настроить режим вставки Vi для создания привязки, которая перемещает определенное количество символов?

    Компиляция кода с точки зрения

    VMWare 12 продолжает запрашивать установку vmware-инструментов на гостевом компьютере Windows

    Сортировка по одному столбцу, затем

    Проблемы с grub badram

    Получите скриншоты машины Linux, с которой я подключаюсь удаленно с помощью PuTTY

    Расширение переменной в файле sudoers

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