Qual è il pid massimo per Mac OS X?


8

Il libro di Mac OS X Internals afferma che l' identificatore del processo massimo è 30.000 e successivamente il kernel inizierà a riutilizzare i pid. Ma controllando il mio sistema, tramite:

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

Vedo che ho pids che vanno più in alto. Qualcuno sa se esiste un pid_max esplicitamente impostato da qualche parte, come in Linux?

Risposte:


14

Guardando sys / proc_internal.h in xnu-1699.24.23, trovo che PID_MAX sia 99999. Il valore è usato in kern_fork.c nella funzione forkproc. Guardando quella funzione, gli ID di processo non sono assegnati uguali a PID_MAX, quindi il pid più alto possibile è 99998.


4
Il libro è obsoleto, era usato per essere 30000 (xnu-792 - Tiger) e cambiato in 99999 quando xnu-1228 fu rilasciato (Leopard)
Stu Wilson,

6

La risposta di Kyle è ancora valida ad oggi. Nel caso tu voglia verificarlo, ecco uno script di shell:

#!/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

Questo stampa:

Min pid: 100
Max pid: 99998
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.