Observação: eu movi isso para o estouro de pilha, acho que é o lugar certo: aqui
Eu tenho um problema estranho, não consigo entender bem. O que eu faço é executar uma função chamada fn_rundumper que basicamente apenas chama o código bash: 'pterm -z "cmd.sh" param1 &'
Aqui está a saída disso, que inclui o pid de fundo "27938858":
fn_rundumper
running fn_dumper...
[1] 27938858
fn_dumper...done
Então eu olho para os números de trabalho que estão rodando isso também mostra PID "27938858":
jobs -l
[1] + 27938858 Running $(pterm -z "$SCRIPTS_DIR/run_dumper.sh" $VO
Então eu faço um comando ps para ver o que pterms estão executando:
ps | grep pterm
24285189 ? 00:00:00 pterm
27938859 ? 00:00:00 pterm
Isso produz o PID "27938859". Isso é diferente dos outros!
Quando eu mato PID 27938858, nada parece acontecer. Quando eu mato o PID 27938859, o fundo pterm é fechado.
O problema é que eu posso querer executar muitos pterms de plano de fundo diferentes, bem como alguns pterms que não são abertos como tarefas em segundo plano (por exemplo, executar separadamente). Então, quando eu vou arrumar, eu só quero fechar os arquivos que eu abri através do meu script.
Eu estava tentando usar trabalhos -l para ver os PIDs que eu preciso fechar, mas como acabei de descrever, este é o PID errado.
Alguém pode explicar por que isso acontece? e também o que preciso fazer para obter o PID correto?
Obrigado!
- editar -
O melhor que posso pensar é fazer um 'ps | grep pterm 'antes e depois e compare os resultados para encontrar o novo pterm PID ... do-able, mas feio: (