2012-07-04 34 views
55

¿Existe alguna política en Linux en cuanto al reciclaje de PID usados? Quiero decir, si se ha usado un PId, ¿cuánto tiempo después se usará nuevamente?Linux PID reciclaje

+0

Tengo curiosidad, me preguntaba cómo funcionaría un proceso pid si algo nuevo tomaba el viejo pid –

+0

Me parece que los PID solo deberían usarse para identificar los procesos actualmente en ejecución. Si sigues esa política, la forma exacta en que se reciclarán los PID nunca te afectará. Tratar de confiar en cómo se reciclarán los PID es frágil. Por esa sola razón, no deberías hacerlo. Además, no puedo imaginar cómo tal comportamiento podría ser útil. Lo único que querrá saber es qué tan grandes pueden ser los PID. P.ej. Una consecuencia de esto es cuántos procesos admite su sistema. Tenga en cuenta que no es necesario saber cómo funciona el reciclaje para llegar a esta conclusión. – allyourcode

+4

@allyourcode intenta escribir un programa como 'top' sin preocuparse por cómo se reciclan los PID. –

Respuesta

42

A medida que los nuevos procesos se bifurcan, los PID aumentarán a un límite dependiente del sistema y luego se ajustarán. El kernel no reutilizará un PID antes de que ocurra este envolvimiento.

El límite (número máximo de pids) es /proc/sys/kernel/pid_max. The manual dice:

/proc/sys/kernel/pid_max (desde Linux 2.5.34)

Este archivo especifica el valor en el que se envuelven alrededor de los PID (es decir, el valor en este archivo es uno mayor que el máximo PID) . El valor por defecto para este archivo, 32768, resultados en el mismo rango de PID como en núcleos anteriores

+0

OK. ¿Entonces esta política creciente se sigue estrictamente? ¿O puede reutilizar un PID antes de que se alcance el límite? – Cygnus

+0

Pensé que un pid había sido reutilizado antes de la envoltura, pero después de 'ps -A -L -o lwp | sort -n' encontré pids alrededor de 32372 que todavía estaban en uso; ¡así que supongo que se está volviendo muy rápido en mi sistema! incluso si no con demasiada frecuencia, pero al menos en el arranque. –