I think it's probably better to raise an exception.  Although it's easy to make it a no-op, a double shutdown probably indicates a bug in the user's code, so making that more obvious is probably a good thing.