Obtendo o PID de um processo em segundo plano executado pela origem

1

Portanto, tenho um script pequeno que eu corro como fonte (para os interessados, faço isso para obter o valor correto de $ SECONDS da pessoa que está executando o script), bem como coloco o programa em segundo plano. Dentro desse script, há um loop infinito que é executado para atualizar um arquivo temporário a cada segundo.

Então, minha pergunta, como eu alcanço o PID do loop dentro do script que precisa ser terminado para matar a atualização do arquivo temporário / o script?

    
por Trevor Sears 04.08.2016 / 01:23

2 respostas

1

  1. Se você comprou, não é realmente um script separado. É como se você tivesse todas as linhas que você fonte presente no lugar / script que você fonte / chamá-lo de.

  2. Um loop não tem um PID. Se estiver em primeiro plano, funcionará sob o PID atual. Mas se você enviá-lo para o segundo plano, então o trabalho é o seu próprio PID, que você pode obter desta maneira:

    do-something-in-a-loop & pid=$!

  3. Você também pode usar a especificação de tarefa da tarefa, se souber. Se você tiver apenas 1 trabalho, poderá fazer kill %1 .

por 04.08.2016 / 11:58
0

A resposta curta é que o loop não tem seu próprio PID, pois ele não é executado em um processo separado, ou seja, o PID do loop é o PID do script.

Para uma resposta mais útil, poste o código atual.

    
por 05.08.2016 / 00:21