Questão Salvando uma ID do processo ao desanexar um comando no Bash


Quando eu desanexar o comando:

$ command &

O resultado é uma impressão para STDOUT:

[1] < PID >

Eu gostaria de monitorar este PID. No entanto, eu não posso escrever esta saída em qualquer lugar, mas STDOUT! Como posso redirecionar isso para um arquivo ou uma variável?

Eu tentei:

$ command 1> ./temp.txt &

Mas isso ainda encontra seu caminho para STDOUT!

Obrigado antecipadamente pela ajuda!


4


origem




Respostas:


$! deve conter o PID do último processo em segundo plano. Algo como...

$ command &
$ echo $! > temp.txt

Deve dar-lhe um arquivo chamado temp.txt com o PID nele.

Ou em uma linha ...

$ command & echo $! > temp.txt

11



Impressionante. Isso não responde a minha pergunta exata, mas isso é ainda melhor! - Daeden
Sim, eu acho que o problema é stdout é a saída do comando que você está executando, mas o id está vindo do shell. Então, para capturá-lo com stdout você teria que realmente executá-lo em um subshell de alguma forma e capturar o stdout disso. Apenas pensando em voz alta sobre o que está acontecendo, não testamos isso. - Bill Heller