나는 등을 memcache
사용하고 웹 프레임워크를 기반으로 하는 웹 애플리케이션을 개발 중입니다. 콘솔 출력을 보거나 필요한 경우 디버거에 들어갈 수 있도록 포그라운드에 있어야 합니다.mongodb
python
python
현재 나는 하나를 가지고 있습니다start.sh
memcache_start
mongodb_start
python fg
그리고stop.sh
memcache_stop
mongodb_stop
스크립트는 모든 것을 자동화할 수 있습니다.
python
Ctrl일반적으로 fg 에서 -kill을 사용합니다 . 이제 시스템을 정상적으로 종료하려면 C이를 python
명시적으로 실행해야 합니다 .stop.sh
start.sh가 논리적으로 실행되어야 하는 다음 연속 작업이기 때문에 stop 명령을 실행할 수도 있다는 것을 Ctrl알 수 있습니까 ?C SIGINT
답변1
Python을 실행하기 전에 SIGINT를 무시하고 기본 동작을 복원 trap ' ' INT
하도록 쉘에 지시하는 데 사용합니다.trap - INT
memcache_start
mongodb_start
trap ' ' INT
python fg
trap - INT
memcache_stop
mongodb_stop
이 trap ' ' INT
줄 다음에는 쉘이 SIGINT를 무시하도록 지시하지만 python
이에 영향을 받지 않습니다. 따라서 Ctrl+ 를 클릭하면 정상적으로 종료 C되지만 python
셸은 스크립트의 나머지 정리 명령을 계속 실행합니다. 두 번째 명령 trap - INT
은 꼭 필요한 것은 아니며 Ctrl+를 다시 사용하여 C청소 프로세스를 중지할 수 있습니다. 즉, SIGINT를 에 보내면 memcache_stop
쉘은 실행을 시도하지 않고 mongodb_stop
단순히 종료됩니다.
여기자세한 기사에서는 쉘이 SIGINT/SIGQUIT를 처리하는 방법을 설명합니다.