待機中の信号とは何ですか?

待機中の信号とは何ですか?

実行中のプロセスの限界を見ると

Max pending signals       15725
  • これは何ですか?
  • 忙しいサービスの合理的な価値を決定する方法は?

通常、各制限が何であるかを説明するページが見つからないようです。一部は非常に自明であり(開いているファイルの最大数)、一部はあまり明確ではありません(最大メッセージキューサイズ)。

答え1

~によるとマニュアルページsigpending

sigpending() は、呼び出しスレッドに渡されるのを待つ信号のセット (つまり、ブロック中に発生した信号) を返します。

Dしたがって、これはプロセスの終了(無中断)の状態で信号(sigterm、sigkill、sigstop...)を待つことを意味します。通常、プロセスはI / Oを待っている間この状態にあります。睡眠は妨げられません。 sigkill( kill -9) もできませんが、カーネルはプロセスが起きるまで待ちます (信号はそれだけ長く渡されるのを待ちます)。

他の不明な値については、以下を見てみましょう。マニュアルページlimits.conf

答え2

プロセス制限は setrlimit(2) によって制御されます。

したがって、マンページを確認することができます。

RLIMIT_SIGPENDING(Linux 2.6.8以降)

呼び出しプロセスの実際のユーザーIDを待機できる信号数の制限を指定します。この制限を確認するために、標準信号とリアルタイム信号の両方が計算されます。ただし、この制限はsigqueue(3)にのみ適用されます。プロセスにまだキューに追加されていないシグナルのインスタンスをキューに追加するには、いつでも kill(2) を使用できます。

通常、システムコールのマニュアルページを見ると、最も詳細な情報が得られます。 CはUNIX / Linuxの母国語です。

関連情報