GNU/Linux >> Linux Esercitazione >  >> Linux

Il valore massimo dell'ID di processo?

Qual è il valore massimo dell'ID processo?

Inoltre, è possibile modificare un ID processo?

Risposta accettata:

Su Linux, puoi trovare il valore PID massimo per il tuo sistema con questo:

$ cat /proc/sys/kernel/pid_max

Questo valore può essere scritto anche utilizzando lo stesso file, tuttavia il valore può essere esteso solo fino ad un massimo teorico di 32768 per sistemi a 32 bit o 4194304 per 64 bit:

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

Sembra essere una pratica normativa sulla maggior parte dei sistemi a 64 bit impostare questo valore sullo stesso valore che si trova sui sistemi a 32 bit, ma questo è per convenzione piuttosto che un requisito.

Da man 5 proc :

/proc/sys/kernel/pid_max  
  This file (new in Linux 2.5) specifies the value at which PIDs wrap around
  (i.e., 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).

E no, non è possibile modificare il PID di un processo in esecuzione. Viene assegnato come numero sequenziale dal kernel al momento dell'avvio del processo e da quel momento in poi è il suo identificatore. L'unica cosa che puoi fare per ottenerne uno nuovo è fare in modo che il tuo codice formi un nuovo processo e termini quello vecchio.


Linux
  1. Costruire contenitori a mano:lo spazio dei nomi PID

  2. Cosa significa nell'output di Ps?

  3. Come trovare il processo con il numero massimo di descrittori di file?

  4. Numero massimo di thread per processo in Linux?

  5. Come imposto la directory di lavoro del processo genitore?

Come modificare la priorità di un processo in Linux

SIGTERM vs SIGKILL:qual è la differenza?

Come inviare processi in background su Linux

Impossibile modificare il numero massimo di file aperti per processo con sysctl

Qual è la definizione di una sessione in Linux?

Come viene calcolata la priorità del processo?