Я немного озадачен тем, как PID распределяются оболочкой BASH, поэтому мне нужна ваша помощь, чтобы понять это с помощью проблемы, которую я пытаюсь решить здесь.Я вызываю функцию в сценарии оболочки.Эта функция запускает другой базовый скрипт в фоновом режиме, как показано ниже:
fn_list()
{
... ... ...
groovy list_gn.gy -p $prop_file $@ &
echo "Extracting PID No :$!" >> $logpid
}
Я вызываю эту функцию следующим образом в цикле:
for x in `cat $list | grep -v '#'`; do
fn_list &
echo "Extracting function PID No :$!" >> $logpid
done
Поскольку я запускаю эту функцию в фоновом режиме,а также groovy, который запускается этой функцией, работает в фоновом режиме (используя &).
Мой вопрос заключается в том, что я регистрирую PID функции и также регистрирую PID скрипта groovy, который вызывается извнутри этой функции.Будут ли отличаться идентификаторы PID для функции и Groovy, который вызывается изнутри этой функции?И правильно ли регистрировать PID?
Мне нужно понять его поведение, потому что я планирую разветвить процесс функции 3 раза.Поэтому хочу быть абсолютно уверенным, если это правильный подход.