como saber se o processo pid da função bash é executado como filho?

1

Estou tentando saber o pid de uma função que foi executada como processo filho em um script

FUNCtstPsSelf.sh

#!/bin/bash
echo "pid=$$;ppid=$PPID"
ps -p $$
function FUNCtstPsSelf() { 
    sleep 3;
    echo "$FUNCNAME:pid=$$;ppid=$PPID";
    ps -p $$ -o pid,ppid,command; 
}
FUNCtstPsSelf&
sleep 1;

mas não consegue encontrar o pid! e agora?

    
por Aquarius Power 09.06.2013 / 03:59

1 resposta

2

Experimente $BASHPID em vez de $$ . Uma das duas ocorrências de $$ na página man é explicar quando ela difere de $BASHPID , incluindo "subshells que não requerem bash para serem reinicializadas", o que pode incluir seus processos de função de segundo plano?

    
por Paul 09.06.2013 / 05:41