/proc/[PID]의 신호 테이블

/proc/[PID]의 신호 테이블

프로세스의 신호를 무시하거나 변경하려고 합니다. 추측한 대로 각 프로세스에는 별도의 신호 테이블이 있습니다.

/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. (잡히거나 무시되는 신호 세트는 프로세스의 모든 스레드에서 동일합니다.) 다른 필드에는 스레드( )로 전달되는 보류 중인 신호 세트와 전달되는 보류 중인 신호 세트가 표시됩니다. 전체 과정은 ()입니다. 의 해당 필드에는 기본 스레드 정보가 표시됩니다. 자세한 내용은 참조하십시오.SigBlkSigCgtSigIgnSigPndShdPnd/proc/[pid]/statusproc(5)

관련 정보