Support graceful interrupt via sigint