Eu tenho um programa que executa outros programas em segundo plano. O programa principal seria o programA, e os programas executados pelo principal seriam o program1a, program1b e program1c.
Eu preciso que os programas continuem a execução, não importa se a conexão do shell foi perdida, então estou usando o comando nohup
.
No entanto, cada programa tem seu próprio arquivo de log, assim:
programA - > logfileA.txt
program1a - > logfile1a.txt
program1b - > logfile1b.txt
program1c - > logfile1c.txt
Quando ocorre um erro em um dos programas filhos, a mensagem de erro é exibida no arquivo LOG correspondente ao programa principal.
Exemplos:
-
O programA é invocado de outra rotina .-
nohup nice -10 programA 2>&1 > logfileA.txt
-
Dentro do programaA invoca os outros 3 programas .-
nohup nice -10 program1a 2>&1 > logfile1a.txt
nohup nice -10 program1b 2>&1 > logfile1b.txt
nohup nice -10 program1c 2>&1 > logfile1c.txt
Quando ocorre um erro, ele é exibido ou exibido em logfileA.txt
, em vez de ser exibido em logfile1a.txt
ou logfile1b.txt
ou logfile1c.txt
.
Como posso saber qual programa produziu o erro que é exibido no arquivo de log do programa principal?