I have simple bash script
#!/bin/bash
(while true; do
true;
sleep 3
done) &
How can I assign pid of this loop to variable, to kill process in future ? I try trap, but loop has own pid so I should know pid of loop running in background to kill it for example after SIGTERM.
Advertisement
Answer
The PID of the background-process started can be extracted from this $! variable.
$ (while true; do
> true;
> sleep 3
> done) &
[1] 26159
$ bgPID=$!; echo "$bgPID" # <---- To store it in a bash variable.
26159
$ kill "$bgPID"
[1]+ Terminated ( while true; do
true; sleep 3;
done )