패킷은 초당 750패킷으로 생성되며 tcpdump를 사용하여 이러한 패킷을 캡처하고 USB 드라이브에 저장된 파일에 씁니다. 쓰기 속도 제한으로 인해 전체 패킷 캡처->파일 쓰기 프로세스에 오랜 시간이 걸립니다. Ctrl+C를 사용하여 tcpdump 프로세스를 종료하면 어떤 일이 발생하는지 알고 싶습니다. 캡처된 패킷을 파일에 쓴 다음 종료합니까, 아니면 나머지 캡처된 패킷을 파일에 쓰지 않고 즉시 종료합니까? 감사해요.
답변1
클릭 Ctrl- CSIGINT 신호가 프로세스로 전송됩니다. 나는 그것이 나중에 쉘에 무슨 일이 일어나는지에 달려 있다고 믿기 때문에 아무 것도 의존해서는 안됩니다.
그러나 스크립트는 신호를 포착한 다음 종료하기 전에 정의한 작업을 수행할 수 있습니다. 원하는 대로 수행할 수 있는 함수를 작성하세요. 이름은 중요하지 않습니다. 여기서는 청소라고 부릅니다. 그런 다음 SIGINT를 캡처하고 함수를 호출합니다. 이와 같이:
trap cleanup SIGINT
cleanup() {
.... # your code here - to be executed after Ctrl+C/SIGINT is received
exit 1 # <--- make sure you exit, otherwise Ctrl+C will not work anymore
}
... your script here...