Skip to main content

You are not logged in. Your edit will be placed in a queue until it is peer reviewed.

We welcome edits that make the post easier to understand and more valuable for readers. Because community members review edits, please try to make the post substantially better than how you found it, for example, by fixing grammar or adding additional resources and hyperlinks.

8
  • 6
    I agree that a process should be written to be tolerant to such a failure, but I think it is still bad practice to do this. A database will recover but it might detect the rude abort and then trigger significant recovery checking when restarted. And what about the requests a process is serving? They will all be severed instantly, the clients might have bugs and fail too? Commented May 24, 2014 at 9:40
  • 4
    A database that can't be killed at any time isn't a properly reliable database. This is a pretty basic requirement if you require consistency. As for the clients: if they go haywire and corrupt data when the connection is severed, they are badly designed as well. The way to address loss of service is through redundancy and automatic failover/retry strategies. Usually for most of the system failing fast is preferable to trying to recover. Commented Sep 19, 2014 at 16:36
  • 4
    @borud It may not be perfectly written software, but it's software people use all the time. What system administrators have the luxury of always being able to choose software that's perfectly written, down to always recovering gracefully from sudden disruption? Not many. Personally I use shutdown scripts, and start/stop processes via this. If they don't respond to the shutdown script (which does a proper signaling to the process), I kill -9. Commented Dec 29, 2014 at 20:59
  • 2
    There is no difference between cooking basic stuff and more complex dishes with regard to the tools. The difference is the cook. (However, if you spend as much time cooking as I do, you do realize that robustness is a minimum requirement in kitchen tools and that most people who sell kitchen supplies to consumers wouldn't know a bad tool from a great tool.) Commented Jul 19, 2017 at 19:25
  • 2
    So you encourage people to be sloppy because it is hard to do things properly? More and more software is run in operational environments that are ephemeral. If you write software that gets fussy if it isn't shut down correctly, you are going to have a hard time convincing employers to hire you as a developer. Commented May 18, 2018 at 22:03