use addInterruptHandler rather than os.Exit