![SIGINT를 여러 프로세스에 보내는 방법](https://linux55.com/image/10873/SIGINT%EB%A5%BC%20%EC%97%AC%EB%9F%AC%20%ED%94%84%EB%A1%9C%EC%84%B8%EC%8A%A4%EC%97%90%20%EB%B3%B4%EB%82%B4%EB%8A%94%20%EB%B0%A9%EB%B2%95.png)
여러 프로세스에 SIGINT 신호를 보내려고 하는데 이것이 맞는 것 같습니다.
kill -2 <pid1> <pid2> ... <pid3>
하지만 확인할 수는 없습니다...
답변1
네, 맞습니다. 매뉴얼 페이지에서 이를 확인합니다. 달리는 사람은 man kill
이렇게 말했습니다.
SYNOPSIS
kill [options] <pid> [...]
...
OPTIONS
<pid> [...]
Send signal to every <pid> listed.
쉘은 자체 내부 버전을 제공할 수 있으며 kill
이 버전이 우선적으로 적용되지만 설명된 인터페이스와 호환되어야 합니다. 를 실행하면 더 많은 정보를 확인할 수 있습니다 help kill
.
이름과 숫자의 매핑이 UNIX 변형에 따라 다를 수 있기 때문에 kill -INT
대신 사용하겠습니다 .kill -2
답변2
이는 자체 복사본을 만들고, 신호에 반응하고, 신호를 기다리는 프로그램을 사용하여 쉽게 테스트할 수 있습니다.
% perl -E '$SIG{INT}=sub {say "ouch"};fork();fork();say $$;sleep 999'
17344
17346
17345
17347
ouch
ouch
ouch
ouch
쿠로사와는 다른 터미널로 닦는다
% kill -2 17344 17346 17345 17347
분명히 그는 도망 쳤습니다.
답변3
어때요?
for i in <pid1> <pid2> <pid3>; do kill -2 $i; done
또는:
for i in {17344..17347}; do kill -2 $i; done