Como obter o PID de um processo iniciado recentemente no Bash [closed]

0

Eu tenho um arquivo de script bash que contém o seguinte código script.sh

./xxx_program arguments &
PID=$!
echo $PID
kill -INT $PID

O que estou tentando fazer é iniciar um programa " xxx_program " e, em seguida, armazenar seu PID na variável $PID . Mas, em vez disso, continuo recebendo o PID de " bash " em vez do programa que abro, o que faz com que o kill -INT $PID apenas saia do script.sh enquanto o xxx_program continua em execução. Observe que o xxx_program é aberto, mas acabei de receber o PID incorreto.

Gostaria de saber se existe uma maneira de obter o PID de xxx_program? Agradecemos antecipadamente

    
por Yuran 13.06.2017 / 15:43

2 respostas

3

Existem várias maneiras:

  1. Deixe o script escrever seu próprio pid. Inclua a linha echo $$ > /tmp/my.pid no seu script.
  2. Use pidof script_name
  3. Use ps -ef | grep script_name | tr -s ' ' | cut -d ' ' -f2
por user5325 13.06.2017 / 18:31
1

Você poderia usar

pidof xxx_program 

se esse é o nome do processo. (deve ser o nome completo do processo como foi invocado, incluindo quaisquer opções ou caminhos de linha de comando)

    
por spark 13.06.2017 / 16:22