PSIGNAL(9)

명칭
psignal, pgsignal, gsignal - 프로세스 또는 프로세스 그룹에의 시그널의 전달

서식
<sys/types.h> <sys/signalvar.h> void psignal(struct proc *p, int signum) void pgsignal(struct pgrp *pgrp, int signum, int checkctty) void gsignal(int pgid, int signum)

해설
이러한 함수는 1 개 이상의 프로세스에 시그널을 전달합니다. 3 개의 함수 모두에 공통된 인수 signum 하 [1-NSIG] 의 범위여야 합니다.

psignal() 함수는 시그널 번호 signum (을)를 프로세스 구조체 p 에 의해 표현되는 프로세스에 전달합니다. 이하에 나타내는 조금의 예외가 있습니다만, 전달처 프로세스 시그널 배치는 갱신되어 실행 가능으로서 마크 됩니다. 그 때문에 이 시그널의 취급은, 콘텍스트 스위칭의 다음에 전달처 프로세스의 문맥내에서 완료합니다. psignal() (은)는 자기 자신으로 콘텍스트 스위칭을 일으킬 것은 없는 것에 주의해 주세요.

이하의 경우에는, 전달처 프로세스가 실행 가능으로서 마크 되지 않습니다.

•   전달처 프로세스가 끼어들어 불가능해 자고 있습니다. 그 시그널은 프로세스가 시스템 콜 또는 트랩으로부터 돌아왔을 때에 통지됩니다.

•   전달처 프로세스가 현재는 시그널을 무시하고 있습니다.

•   디폴트의 행동 ((sigaction) 2 (을)를 참조)를 취하는 자고 있는 프로세스에 정지 시그널이 보내졌을 경우에는, 그 프로세스는 일으켜지는 일 없이 정지 당합니다.

•   시그널의 행동 (예를 들면, 블록 또는 무시)에 관계없이, SIGCONT (은)는 정지 당하고 있는 프로세스를 재스타트 시킵니다 (또는 sleeve에 되돌립니다).

전달처 프로세스가 트레이스중의 경우에는, psignal() 빠져 있는 것으로 전달처 프로세스가 signum (을)를 위한 디폴트의 행동을 취했는지와 같이 행동합니다. 이것은 트레이스 하고 있는 프로세스에 그 시그널이 통지되는 것을 가능하게 합니다.

pgsignal() 함수는 시그널 번호 signum (을)를 pgrp 에 의해 기술되는 프로세스 그룹의 개개의 멤버에 전달합니다. checkctty 하지만 0 이 아닌 경우에는, 그 시그널은 제어 단말을 가지고 있는 프로세스에게만 전달됩니다. pgsignal() 하 pgrp 에 의해 가리켜지는 프로세스 그룹 구조체의 pg_members 필드에 의해 가리켜지는 프로세스 리스트에 따라 걸어, 적절히 psignal() (을)를 호출하는 것에 의해 실장되고 있습니다. pgrp 하지만 NULL 의 경우에는 어떤 행동도 취하지 않습니다.

gsignal() 함수는 시그널 번호 signum (을)를 그룹 ID pgid 에 의해 식별되는 프로세스 그룹의 개개의 멤버에 전달합니다. gsignal() (은)는 최초로 pgid 에 관련지을 수 있고 있는 그룹 구조체를 찾아내 그리고 인수 checkctty (을)를 0 으로 설정해 pgsignal() (을)를 실행합니다. pgid 하지만 0 의 경우에는 어떤 행동도 취하지 않습니다.

관련 항목
sigaction(2), tsleep(9)