I'm using bash on a RH Linux system.Normally, you can get your own PID with the variable $$.  However, if a script runs one of its own functions as a background process - that doesn't work; all functions run in the background will get the PID of the parent script when $$ is used.For example, here is a test script:    /tmp/test:    #!/bin/bash    echo I am $$    function proce {      sleep 3      echo $1 :: $$    }    for x in aa bb cc; do      eval proce $x &      echo Started: $!    doneWhen it is executed:    /tmp$ ./test    I am 5253    Started: 5254    Started: 5256    Started: 5258    /tmp$ aa :: 5253    bb :: 5253    cc :: 5253So - the parent script (/tmp/test) executes as PID 5253 and fires-off three background processes with PIDs 5254, 5256 and 5258.  But each of those background processes gets the value 5253 with $$.How can these processes discover its actual PID?
How can a background process know its own PID?
bash;process;background process