Successfully reported this slideshow.
Your SlideShare is downloading. ×

[5분 따라하기] bash 타임아웃 패턴

Ad
Ad
Ad
Ad
Ad
Ad
Ad
Ad
Ad
Ad
Ad

Check these out next

1 of 7 Ad

More Related Content

Slideshows for you (20)

Advertisement

More from Jay Park (20)

Recently uploaded (20)

Advertisement

[5분 따라하기] bash 타임아웃 패턴

  1. 1. [5분 따라하기] bash 타임아웃 패턴 박재호(jrogue@gmail.com)
  2. 2. 참고 자료 • <컴퓨터 vs 책> 블로그 • http://jhrogue.blogspot.com/ • OKdevTV 유튜브 방송 • 5분 따라하기 리스트: • https://www.youtube.com/playlist?list=PLdntWJk2tJPLKNNYBVCxnde2PEB6d zbSL • 슬라이드 셰어 • https://www.slideshare.net/jrogue/presentations • ASCIINEMA • https://asciinema.org/~jrogue
  3. 3. 오늘 소개할 내용 • 배시(bash) 셸 스크립트에서 타임아웃을 걸 수 없을까? • 실행이 오래 걸리는 작업을 무작정 기다릴 수 없는 상황에서 사람이 스톱워 치 들고 개입을 해야 하나? • 외부 프로그램(watchdog)이 감시해서 제어하기에는 무겁지 않을까?
  4. 4. bash에서 알고 넘어가야 하는 사항 • $$ • POSIX에서 $$는 원본 프로세스의 프로세스 식별자 • $BASHPID • 배시 하위 셸 내부의 프로세스 식별자 • & • 배경 프로세스로 동작 • KILL • 프로세스에 시그널 전송 • TERM: 종료 시그널(해당 프로세스의 시그널 처리기에서 잡을 수 있음) • KILL: 강제 종료 시그널(init에서 프로세스 종료) • 모든 시그널 유형 보기 • $ kill -l
  5. 5. via @dongwoo
  6. 6. 스크립트 $ (cmdpid=$BASHPID; (echo $cmdpid; sleep 5; kill -TERM $cmdpid) & exec sleep 10) 10321 Terminated $ cat - > timeout.sh #!/bin/sh (cmdpid=$$; (echo $cmdpid; sleep 5; kill -TERM $cmdpid) & exec sleep 10) <CTRL+D> $ chmod +x timeout.sh $ ./timeout.sh 10329 Terminated 명령행에서 직접 실행 스크립트로 만든 다음에 실행
  7. 7. 보면서 따라해봅시다~~~ • https://asciinema.org/a/af1uoLWpsuDGITMFf34KGuICt

×