Existem várias maneiras:
- Deixe o script escrever seu próprio pid. Inclua a linha
echo $$ > /tmp/my.pid
no seu script. - Use
pidof script_name
- Use
ps -ef | grep script_name | tr -s ' ' | cut -d ' ' -f2
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
Existem várias maneiras:
echo $$ > /tmp/my.pid
no seu script. pidof script_name
ps -ef | grep script_name | tr -s ' ' | cut -d ' ' -f2
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)