に保存されている値を変更しました/proc/sys/kernel/pid_max
。この新しい値を適用するには再起動する必要がありますか?
答え1
増えたら/proc/sys/kernel/pid_max
(たとえばcat 100000 > /proc/sys/kernel/pid_max
)この値はすぐに適用されます。再起動する必要はありません。しかし、私はそれを減らそうとしたことがありません(*)。
これをテストできます(これは少し見苦しく、本番システムでは実行しないでください)。
i=0 ; while [ $i -lt 10000] ; do (echo $i > /dev/null); ((i++)); done; ps ax | grep AnythingUnlikelyToBeUsedAlready
(echo $i > /dev/null)
繰り返しごとに新しい PID を生成します。私のテストケースでは10000が便利ですが、調整できます。以前に設定したとおりに実行#3で繰り返されますpid_max
。
shlublu:~$ i=0 ; while [ $i -lt 10000 ] ; do (echo $i > /dev/null); ((i++)); done; ps ax | grep AnuthingUnlikelyToBeUsedAlready
86880 pts/0 S+ 0:00 grep --color=auto AnuthingUnlikelyToBeUsedAlready
shlublu:~$ i=0 ; while [ $i -lt 10000 ] ; do (echo $i > /dev/null); ((i++)); done; ps ax | grep AnuthingUnlikelyToBeUsedAlready
96882 pts/0 S+ 0:00 grep --color=auto AnuthingUnlikelyToBeUsedAlready
shlublu:~$ i=0 ; while [ $i -lt 10000 ] ; do (echo $i > /dev/null); ((i++)); done; ps ax | grep AnuthingUnlikelyToBeUsedAlready
7246 pts/0 S+ 0:00 grep --color=auto AnuthingUnlikelyToBeUsedAlready
shlublu:~$ i=0 ; while [ $i -lt 10000 ] ; do (echo $i > /dev/null); ((i++)); done; ps ax | grep AnuthingUnlikelyToBeUsedAlready
17260 pts/0 S+ 0:00 grep --color=auto AnuthingUnlikelyToBeUsedAlready
shlublu:~$ i=0 ; while [ $i -lt 10000 ] ; do (echo $i > /dev/null); ((i++)); done; ps ax | grep AnuthingUnlikelyToBeUsedAlready
27262 pts/0 S+ 0:00 grep --color=auto AnuthingUnlikelyToBeUsedAlready
ただし、これを実行した後に再起動すると、/proc/sys/kernel/pid_max
デフォルト値に戻ったことがわかります。(通常32768)。
再起動後も設定を維持するには、適切に編集して設定する/etc/sysctl.conf
必要がありますkernel.pid_max
。
たとえば、
kernel.pid_max = 100000
警告する:pid_max
境界があるこれはシステムによって異なります。定義する値はこれらの制限内になければなりません。
(*)しかし@ピーターやったら効果がはっきりと出ました。コメントを読む。