プロセスのシグナルを無視または変更しようとしています。推測したように、各プロセスには別々のシグナルテーブルがあります。
/procフォルダに似たものはありますか?
時間をいただきありがとうございます。
答え1
/proc/<pid>/status
特定のプロセスの信号処理を記述するフィールドを含みます。man 5 proc
もっと学ぶ。たとえば、
SigPnd: 0000000000000000
ShdPnd: 0000000000000000
SigBlk: 0000000000010000
SigIgn: 0000000000384004
SigCgt: 000000004b813efb
信号処理は外部から変更することはできず、それを使用してプロセスの信号処理に影響を与えることはできません。
プロセスを処理できる場合は、ptrace
プロセスにデバッガを接続し、それを使用して信号処理を変更できます。
答え2
はい、以下の「参考」セクションをお読みくださいman 7 signal
。
ファイルには、スレッドがブロック()、キャプチャ()、または無視()していることを示す信号を表示するいくつかのフィールドが含まれています
/proc/[pid]/task/[tid]/status
。 (キャッチまたは無視されるシグナルセットはプロセス内のすべてのスレッドで同じです。)他のフィールドには、スレッド()に渡される保留中のシグナルセットと、渡される保留中のシグナルセットが表示されます。全体のプロセスは()です。の対応するフィールドには、基本スレッド情報が表示されます。詳細は参照してください。SigBlk
SigCgt
SigIgn
SigPnd
ShdPnd
/proc/[pid]/status
proc(5)