업무할때 자주 쓰는데도 불구하고 자꾸만 까먹어서 정리한다.
bash script 에서는 trap 을 이용해서 signal을 가로챌 수 있다.
다만 여기서, SIGKILL 은 가로채는 동작이 불가능 함을 미리 알린다.
// 아래처럼 trap을 걸면 된다.
trap 'action' 1 2 3
trap 'action' SIGINT
trap 'action' SIGTERM SIGINT
스크립트 예시를 하나 만들어 보자. sigint 시그널이 왔을 때 프로그램을 종료하는 스크립트 이다.
#!/bin/bash
function sigint()
{
echo "SIGINT function!"
exit 0
}
trap sigint SIGINT
while [ 1 ]
do
echo "I'm in a loop .."
sleep 10
done
아래처럼 sigint 함수가 호출되어 종료 되는 것을 볼 수 있다.
$ ./210801.sh
I'm in a loop .. // ctrl + c
SIGINT function!
'CS > Shell scripts' 카테고리의 다른 글
[오늘의 업무/Bash] Shell 문자열에서 원하는 부분만 치환/변경 하는 방법 (0) | 2021.10.07 |
---|---|
[Bash] 배쉬쉘에서 파일/디렉토리 유무 확인하기 (0) | 2021.10.06 |
[Bash] Bash 스크립트에서 argument로 Option 을 처리 하는 방법 (0) | 2021.07.08 |
[Bash] 쉘 스크립트 출력 시 개행이 안되는 경우 해결방법 (0) | 2021.06.24 |
Linux 명령어 'awk' 로 원하는 부분만 출력하기 - 1 (0) | 2021.06.24 |