And as always with this meme: Both Windows and Linux can ask a process nicely to terminate or kill it outright. And the default for both is to ask nicely.
on windows a process can get in a state so that it is impossible to make it go away, even with process explorer or process hacker. mostly this also involves the bugged software becoming unusable.
I encounter such a situation from time to time. one way it could happen is if the USB controller has got in an invalid state, which one of my pendrives can semi-reliably reproduce. when that happens, any process attempting to deal with that device or its FS, even the built-in program to remove the drive letter, will stop working and hang as an unkillable process.
Linux has that issue too. A process in an uninterruptible blocking syscall stays until that syscall finishes, which can be never if something weird's going on.
Hitting the X in Windows and hitting the X in Linux both cause the application to start a save yourself routine. From the OS standpoint they're not far off.
The problem is we have a lot of confirmation bias in windows because every time we want to close an application that's not working, that save yourself call has to sit around for a hellaciously long time out followed by a telemetry call so that Microsoft can track that it happened.
It's pretty rare that Linux apps don't just close.
Actually no, it's just that the programs on Linux usually accept SIGINT, SIGTERM, etc pretty gracefully. Some are even smart enough to handle it on a thread hang. SIGKILL is last resort.
Lots of Windows applications like to ignore the close request because Windows doesn't have signals and instead you can only pass a window name to request exit which is the same as clicking the close button.
So any hung software won't respond and you have to terminate it.
I haven't seen that in a while. When you see that it means either that the service didn't handle the terminate signal correctly or that is is busy doing something. (Sometimes both)
you forgot that you have to spend about 2 minutes with windows "searching for a solution" (who knows what that does??) and then another minute reporting it to microsoft
mainly wrong, by default kill send a SIGTERM, you can try SIGINT or SIGQUIT too, and in the end SIGKILL of course. Same in windows there is different way
TerminateProcess() is pretty reliable, but it doesn't form part of the C signals stack on Windows like kill -9. So for instance, if you're doing process control on Python, you need to use a special Windows-only API to access TerminateProcess().
Kill -9 is a command on Unix and Linux to send signal 9 (SIGKILL) to a process. That's the version of kill that is the most reliable and has immediate effect.
Taskkill is a Windows command line program. I believe that taskkill /f uses the TerminateProcess() API. This is more forceful than the End Task button on the Task Manager. There is a different End Process button on the Task Manager that does use TerminateProcess().
I feel like I've had the opposite experience in the gui (maybe a KDE issue?) closing gui windows frequently lock up, and I find I frequently have to drop to the command line in order to properly kill some programs
That's because the end proces of the GUI sends a sigint, which does jack shit if the program hangs, you only archieve for a higher parent process to obtain it until it can off itself gracefully. You need to right click the process and send a sigkill signal to emulate the command line.
Is there some Linux equivalent to "ctrl + alt + del?" I get that killing a process from the terminal is preferred, but one of the few things I like about windows is if the GUI freezes up, I can pretty much always kill the process by pressing ctrl+alt+del and finding it in task manager. Using Linux if I don't already have the terminal open there are plenty of times I'm just force restarting the computer because I don't know what else to do.
Ctrl+alt+F1/F2/F3 etc.
It lets you switch to another terminal session, where you can use something like top/htop for a commandline equivalent to task manager.
That's what I don't get about what they said above. If the Windows desktop freezes up, Task Manager won't open either (happened to me quite some times over the years - less so since they moved to the NT kernel though). What you mentioned always works short of kernel panic.
Do you have enough swap allocated to your linux machine? I found that my GUI froze frequently due to not having enough of it when the computer was under heavy load.
btw funny story since many comments mention NFS/CIFS:
I have a share mounted at /smb and the server sometimes just dies so when I want to unmount it I run umount /smb but my shell (zsh) hangs after typing umount /sm and the b doesn't even show
I guess zsh does a kind of stat() on everything you type but bash came to save the day
I don't know if clean ZSH does it, but if you have the zsh-syntax-highlighting plugin, it tests if the path you're typing exists every time you edit the line.