これを知ることは可能ですか?この情報を見つけるには一種のテストを実行する必要がありますか?
ログインした後、私のシステムはmax_pidをラップしているようで、まだ生きているシステムは以前のプロセスと同じpidを取得しました(これは私のスクリプトの1つがめちゃくちゃになりました...)!何が起こっているのか、解決策があるのか理解しようとしています。
私は/proc/sys/kernel/pid_max
32768です
ベストアンサー1
pid_max
どのくらいの改行が発生したかを知る方法はありません。ラッパーの発生を防ぐpid_max
1つの解決策は、pid_max
内部に価値を追加することです。
cat /proc/sys/kernel/pid_max
上記のコマンドは、システムで使用できるプロセスの最大数を示します。次のようにmax_pid値を増やすことができます。
echo 4194303 > /proc/sys/kernel/pid_max
でも、
sysctl -w kernel.pid_max=4194303
ただし、一部のプロセスが現在メモリを使用しているかどうかを調べる必要があります。
実行ps -A
中またはps -e
現在システムメモリを使用しているプロセスを確認できます。
パッケージを識別できないのはなぜですか?
~からこれ答え、
ほとんどのシステムは、最後に生成されたPIDの数を保持し、1つを追加します(最も高い数字、たとえば65535またはより小さい数字でラップされます - 一般的に、ラップは65000または60000でも発生します)。現在使用中でないことを確認してください(PIDがまだ使用中の場合は重複しているため、PID 1(カーネル)はまだ存在し、「再発行」されません。
他のセキュリティ認識システムでは、ランダムに番号を生成して、まだ使用されていないことを確認します。
いつでもすべてのPID番号が一意であることを保証します。
pid_max
したがって、到達しても現在使用されていない一部のPIDがまだ残っている可能性があるため、システムで引き続き使用できます。私が知っている限り、次のエラーが発生したときにのみpidが使い果たされたことがわかります。コメント説明する、
プロセス数が> pid_maxの場合、「プロセスがありません...」などのメッセージが表示されます。