Como descubro o processo id do processo em segundo plano?

5

Eu tenho um comando (programa) que gostaria de executar com nohup e fazer o plano de fundo. Como

nohup command > logfile.txt &

Como descubro o ID do processo? Eu gostaria de poder escrever o id do processo em um arquivo, ler mais tarde e matar o processo programaticamente.

    
por hayavuk 10.01.2011 / 21:07

4 respostas

7

No seu script:

nohup command > logfile.txt &
echo $! > /var/run/command.pid
    
por 10.01.2011 / 21:18
3

Você pode usar $! . Referenciado na documentação do bash .

    
por 10.01.2011 / 21:12
1

Você pode usar ps e grep para encontrar o processo na lista de processos e, em seguida, awk para analisar a saída e encontrar o PID real:

ps -ef | grep -v grep | grep YOUR_PROCESS_NAME | awk '{ print $2 }'
    
por 10.01.2011 / 21:12
0

Você pode tentar:

ps aux | grep -v grep | grep nome do programa

Isso irá verificar os processos em execução, grep para o nome do programa, mas excluir o próprio grep.

    
por 10.01.2011 / 21:10