On 05/04/2024 at 16:19, Branden R. Williams via GNU coreutils Bug Reports wrote:
I was integrating the timeout command into a shell script and realized the manpage & the --help docs do not accurately describe how the tool works. In addition, there appears to be a bug related to arguments passed. I am running version 9.1. According to the help screen, this command should work: timeout -k 10s ping example.com <http://example.com/> It fails, however, because the next argument after invoking -k is the kill signal you want to send. The command (to send a SIGKILL) must be:
As I understand it, the argument after -k (or --kill-after=) is the time to wait and send the kill signal if the timeout fails.
So this line:
timeout -k 9 10s ping example.com <http://example.com/>
sends a kill signal 9 seconds after the timeout, if the timeout hasn't worked.
The -s option is to change the signal sent (as below).
I believe the kill after functionality and docs should be modified to send a default signal of SIGTERM without an additional argument so the first iteration above would work. Then you could explain that if you wanted to send a DIFFERENT signal, use the -s flag that is there to pass one. But according to the docs, the first command SHOULD work. Even using the --kill-after= syntax passes in the kill signal into that argument, not the actual time. Thank you for your consideration and for maintaining such a critical set of tools! Regards, B
-- Chris Elvidge