Not bad, but one big criticism, never do a 'kill -9' first, that will stop the program from cleaning up after itself if killed using -9.
Use one of these instead:
-TERM then wait, if not
-INT then wait, if not
-HUP then wait, if not
-ABRT
If you are sure all of these fail, then use -9 (-KILL). But assume the program has a major bug and try and find another program that will do the same task and use that instead.
Maybe this logic should be built into the "kill" command (or some other standard command). Given that this is the right way, it shouldn't be more tedious than the wrong way!
It could also monitor the target process and inform you immediately when it exits, saving you the trouble of using "ps" to confirm that the target is actually gone.
Different programs may take different amounts of time to cleanup and close. To know if a signal failed takes human judgment or heuristic. A program receiving a signal is even able to show a confirmation dialog for the user to save stuff, etc. before closing.
That's a valid point. Another example is SIGHUP, which will cause some programs to exit but other programs to reload their config file. In certain very specific cases, that could even cause harm.
So really what "kill" would be doing is automating a common procedure, which is different than taking responsibility for doing it correctly. It would need to be configurable.
I still think it would be a net benefit since right now incentives push people toward doing something the wrong way (even if they know better). But I can also see how it might give people a false sense of security or something along those lines.
It's not common. If kill on its own (which does just SIGTERM) doesn't work, you're already in "something wrong is happening" territory, which is why:
>>> Given that this is the right way, it shouldn't be more tedious than the wrong way!
is also the wrong way to think about this. Trying a sequence of signals is not so much "the right way" as it is "the best way to handle a wrong situation". The right way is just kill on it's own. SIGTERM should always suffice. If it doesn't to the user's satisfaction for a nonjustifiable reason, then you can just kill -9, but this should be rare.
Trying a sequence of SIGINT, SIGHUP, and SIGABRT is technically better than SIGKILL but not really important unless you also want to write a bug report about the program's signal handling or fix it yourself. About SIGINT and SIGHUP, if SIGTERM doesn't work, it's unlikely that SIGINT or SIGHUP would. Likely, it would only be through oversight and the execution of default handlers.
kill -9 is just like rm -rf. I wouldn't suggest that rm automatically run with -r or -f when rm on its own didn't work, and I wouldn't call automatically trying those flags "the right way".
Lots of commandline tools will hold on to dear life except for the sigkill. I often have this with running background tasks which get one of their threads in an infinite loop or wait state.
I've had it on every Windows computer I used at work since forever now, and it is extremely useful to be able to use things like sed and gawk (and even make) from the command prompt
> Author's note: From here on, the content is AI-generated
Kudos to the author for their honesty in admitting AI use, but this killed my interest in reading this. If you can use AI to generate this list, so can anyone. Why would I want to read AI slop?
HN already discourages AI-generated comments. I hope we can extend that to include a prohibition on all AI-generated content.
> Don't post generated comments or AI-edited comments. HN is for conversation between humans.
Let me present you my favorite, how do you figure out dirname, basename and filename in batch script?
set filepath="C:\some path\having spaces.txt"
for /F "delims=" %%i in (%filepath%) do set dirname="%%~dpi"
for /F "delims=" %%i in (%filepath%) do set filename="%%~nxi"
for /F "delims=" %%i in (%filepath%) do set basename="%%~ni"
echo %dirname%
echo %filename%
echo %basename%
70 comments
> "Author's note: From here on, the content is AI-generated"
Ah, I see, googling the equivalent of "clear" was too much work and you had to get an LLM to do it for you. Well at least you were honest about it
Use one of these instead:
If you are sure all of these fail, then use -9 (-KILL). But assume the program has a major bug and try and find another program that will do the same task and use that instead.It could also monitor the target process and inform you immediately when it exits, saving you the trouble of using "ps" to confirm that the target is actually gone.
So really what "kill" would be doing is automating a common procedure, which is different than taking responsibility for doing it correctly. It would need to be configurable.
I still think it would be a net benefit since right now incentives push people toward doing something the wrong way (even if they know better). But I can also see how it might give people a false sense of security or something along those lines.
> automating a common procedure
It's not common. If
killon its own (which does just SIGTERM) doesn't work, you're already in "something wrong is happening" territory, which is why:>>> Given that this is the right way, it shouldn't be more tedious than the wrong way!
is also the wrong way to think about this. Trying a sequence of signals is not so much "the right way" as it is "the best way to handle a wrong situation". The right way is just
killon it's own. SIGTERM should always suffice. If it doesn't to the user's satisfaction for a nonjustifiable reason, then you can justkill -9, but this should be rare.Trying a sequence of SIGINT, SIGHUP, and SIGABRT is technically better than SIGKILL but not really important unless you also want to write a bug report about the program's signal handling or fix it yourself. About SIGINT and SIGHUP, if SIGTERM doesn't work, it's unlikely that SIGINT or SIGHUP would. Likely, it would only be through oversight and the execution of default handlers.
kill -9is just likerm -rf. I wouldn't suggest thatrmautomatically run with-ror-fwhenrmon its own didn't work, and I wouldn't call automatically trying those flags "the right way".Usually the process is either working correctly and terminates when asked, or else not working correctly and needs to be KILLed.
Signal 9 cannot be ignored.
Is it still passed when a terminal is disconnected? I understand a dial-up modem was involved in the original intended use.
kill -9, instead refer to the signal directly. 9 is not always the same signal on all platforms.ls.Then I'm reminded that it's not a know file or directory.
wslto the linux command you want to run; of course only if you have wsl setup.https://learn.microsoft.com/en-us/windows/wsl/filesystems#ru...
> Windows: netstat -n -a | findstr "https" (//note the double quotes)
netstat works perfectly fine on linux as well. If you're looking for https connections it's certainly far more efficient than 'lsof'.
also if you use '-n' then you're not going to get service names translated, so that probably should be:
netstat -n -a | find "443"
I've had it on every Windows computer I used at work since forever now, and it is extremely useful to be able to use things like
sedandgawk(and evenmake) from the command prompt[1] https://unxutils.sourceforge.net/
> Author's note: From here on, the content is AI-generated
Kudos to the author for their honesty in admitting AI use, but this killed my interest in reading this. If you can use AI to generate this list, so can anyone. Why would I want to read AI slop?
HN already discourages AI-generated comments. I hope we can extend that to include a prohibition on all AI-generated content.
> Don't post generated comments or AI-edited comments. HN is for conversation between humans.
> Finding a specific file by name across the system
> Linux: find / -name "config.txt"
This is not how you find a file across the entire system, you use plocate for that. find would take ages to do what plocate does instantly
ctrl+r
Why this entry is in the top 30?
I'll start: