make
개발 웹 서버를 실행하는 데 사용합니다 . 서버가 종료된 후 몇 가지 정리 작업을 수행하고 싶습니다. +를 누르면 Ctrl서버가 종료되지만 C이로 인해 make
추가 명령 실행이 중지됩니다. 간단한 Makefile 예제로 다음을 제공합니다.
default:
sleep 10
echo hello
전화를 걸고 make
시간이 끝나기 전에 Ctrl+를 누르면 C'안녕하세요'가 표시되지 않습니다. 내가 시도한 것 (기반이 답변):
-i
-k
또는 둘 다를 사용하여 make 실행- 두 번째 항목을
-sleep 10
또는 로 변경하십시오.sleep 10 | true
답변1
나는 답을 찾았다스택 오버플로: 명령을 두 개로 나누고 "외부" 명령에서 SIGINT를 포착합니다.
external-target:
bash -c "trap 'trap - SIGINT SIGTERM ERR; echo hello; exit 1' SIGINT SIGTERM ERR; $(MAKE) internal-target"
internal-target:
sleep 10