GNU/Linux >> Znalost Linux >  >> Linux

Maximální hodnota ID procesu?

Jaká je maximální hodnota ID procesu?

Je také možné změnit ID procesu?

Přijatá odpověď:

V Linuxu můžete zjistit maximální hodnotu PID pro váš systém takto:

$ cat /proc/sys/kernel/pid_max

Tuto hodnotu lze také zapsat pomocí stejného souboru, avšak hodnotu lze rozšířit pouze na teoretické maximum 32768 pro 32bitové systémy nebo 4194304 pro 64bitové systémy:

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

Zdá se, že u většiny 64bitových systémů je normativní praxí nastavit tuto hodnotu na stejnou hodnotu, jakou mají 32bitové systémy, ale jedná se spíše o konvenci než o požadavek.

Z 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).

A ne, nemůžete změnit PID běžícího procesu. To je přiřazeno jako pořadové číslo jádrem v době spuštění procesu a to je jeho identifikátor od té doby. Jediná věc, kterou můžete udělat pro získání nového, je nechat váš kód rozvětvit nový proces a ukončit ten starý.


Linux
  1. Maximální počet vláken na proces v Linuxu?

  2. Jak zjistím maximální velikost zásobníku?

  3. Nelze změnit maximální počet otevřených souborů na proces pomocí sysctl

  1. Najděte čas provedení příkazu nebo procesu v systému Linux

  2. Ruční vytváření kontejnerů:jmenný prostor PID

  3. Jaké je maximální číslo portu?

  1. Nový rodičovský proces, když rodičovský proces zemře?

  2. Proč je výchozí vidlice mechanismu vytváření procesu?

  3. Co znamená ve výstupu Ps?