10 votos

¿Cuál es el pid máximo para Mac OS X?

El libro Mac OS X Internals afirma que el máximo identificador de proceso es de 30.000 y a partir de ahí el kernel empezará a reutilizar los pids. Pero comprobando en mi propio sistema, vía:

ps a | grep ps | grep -v grep | awk '{print $1}'

Puedo ver que tengo pids que van más arriba. ¿Alguien sabe si hay un pid_max establecido explícitamente en algún lugar, como en Linux?

17voto

ioSamurai Puntos 8647

Mirando sys/proc_internal.h en xnu-1699.24.23, encuentro que PID_MAX es 99999. El valor se utiliza en kern_fork.c en la función forkproc . Mirando esa función, los ID de proceso no se asignan igual a PID_MAX, por lo que el pid más alto posible es 99998.

5 votos

El libro no está actualizado, solía ser 30000 (xnu-792 - Tiger) y cambió a 99999 cuando se publicó xnu-1228 (Leopard)

0 votos

MacOS Catalina utiliza xnu-6153 . Enlaces para el código en la respuesta: sys/proc_internal.h ; kern_fork . La respuesta de Kyle parece seguir siendo correcta en esta versión.

0 votos

Obsérvese también, mirando forkproc que parece que los PIDs deben ser positivos.

6voto

Ethan Puntos 31

La respuesta de Kyle sigue siendo válido a día de hoy. En caso de que quieras comprobarlo, aquí tienes un shell script:

#!/bin/bash

pid=0
for i in {1..100000}; do
  : &
  if [ $! -lt $pid ]; then
    echo "Min pid: $!"
    echo "Max pid: $pid"
    break
  fi
  pid=$!
done

Esto imprime:

Min pid: 100
Max pid: 99998

AppleAyuda.com

AppleAyuda es una comunidad de usuarios de los productos de Apple en la que puedes resolver tus problemas y dudas.
Puedes consultar las preguntas de otros usuarios, hacer tus propias preguntas o resolver las de los demás.

Powered by:

X