bug-bash
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

kill $! won't kill the last command in asynchronous list


From: Oğuz
Subject: kill $! won't kill the last command in asynchronous list
Date: Wed, 1 Apr 2020 07:19:02 +0300

$ bash -c '{ sleep 15; } & pstree -p $!; kill $!; echo $?'
bash(6955)───sleep(6959)
0
$ pkill -e sleep
sleep killed (pid 6959)

As seen above, kill $! doesn't kill `sleep` if it's enclosed in curly
braces. Dropping curly braces, or execing sleep (e.g `{ exec sleep 15; }`)
fixes this problem, but I didn't understand why.

I could reproduce this on 3 different machines with 3 three different bash
versions; so this is either a bug, or I'm missing something really simple.
The other reason I think this might be a bug is that this isn't
reproducible on other shells like dash, mksh, etc.

This time in order not to waste anyone's time I checked if there is
something about this in devel branch's Changelog file but couldn't find
anything relevant.

Regards


-- 
Oğuz


reply via email to

[Prev in Thread] Current Thread [Next in Thread]