improve sigterm function