cleaner exit in case of SIGINT