feature: when receive SIGINT, make persist before exiting