• DefederateLemmyMl@feddit.nl
    link
    fedilink
    English
    arrow-up
    12
    ·
    edit-2
    1 month ago

    I know what it theoretically is for, I still think it’s a bad implementation.

    1. It often doesn’t tell you clearly what it is waiting for.
    2. It doesn’t allow you to checkout what’s going on with the process that isn’t responding, because logins are already disabled
    3. It doesn’t allow you to cancel the wait and terminate the process anyway. 9/10 when I get it, it has been because of something stupid like a stale NFS mount or a bug in a unit file.
    4. If it is actually something important, like your Redis example, it doesn’t allow you to cancel the shutdown, or to give it more time. Who’s to say that your Redis instance will be able to persist its state to disk within 90 seconds, or any arbitrary time?

    Finally, I think that well written applications should be resilient to being terminated unexpectedly. If, like in your Redis example, you put data in memory without it being backed by persistent storage, you should expect to lose it. After all, power outages and crashes do happen as well.