GNU/Linux >> Linux の 問題 >  >> Linux

プロセスIDの最大値は?

プロセスIDの最大値はいくつですか?

また、プロセスIDを変更することはできますか?

承認された回答:

Linuxでは、次の方法でシステムの最大PID値を見つけることができます。

$ cat /proc/sys/kernel/pid_max

この値は同じファイルを使用して書き込むこともできますが、値を拡張できるのは、32ビットシステムの場合は理論上の最大値32768まで、64ビットシステムの場合は4194304までです。

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

ほとんどの64ビットシステムでは、この値を32ビットシステムで見られるのと同じ値に設定するのが一般的な方法のようですが、これは要件ではなく慣例によるものです。

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

いいえ、実行中のプロセスのPIDを変更することはできません。プロセスの開始時にカーネルによって連番として割り当てられ、それ以降は識別子になります。新しいプロセスを取得するためにできることは、コードに新しいプロセスをフォークさせ、古いプロセスを終了させることだけです。


Linux
  1. 手作業でコンテナを構築する:PID名前空間

  2. 親プロセスが終了したときの新しい親プロセス?

  3. デフォルトのプロセス作成メカニズムフォークはなぜですか?

  1. プロセス置換を実現するためのポータブル(posix)の方法?

  2. Linux 環境変数値の最大サイズは?

  3. 最大スタック サイズを確認するにはどうすればよいですか?

  1. Linuxでのセッションの定義は何ですか?

  2. プロセスの優先度はどのように計算されますか?

  3. 最大ポート番号はいくつですか?