O que você está procurando é comumente chamado de named pipe
e é usado para comunicação entre processos (IPC). Existem alguns ótimos docs sobre a criação de pipes nomeados no Bash, então deixarei para você escrever o código para isso.
Uma vez que você tenha um pipe nomeado, você poderia fazer algo como escrever o PID de cada um dos processos no pipe (usando a variável especial Bash $$
para o PID atual), e então cada um em um loop verificando a existência de cada um dos PIDs. se encontrar um que não exista mais (o processo morreu ou foi morto), então pode tomar uma ação.
Você colocaria algo assim na seção apropriada do (s) seu (s) script (s). Por favor, teste primeiro. :)
trap "rm -f $named_pipe" EXIT
# Assuming you have a file under $named_pipe with space-delimited PIDs
pids = $(< $named_pipe)
while :
do
for pid in pids:
do
if ! kill -0 $pid;
then
exit
fi
done
done