it-swarm-es.tech

¿Cómo obtener el pid del último comando ejecutado en el script de Shell?

Quiero tener un script de Shell como este:

my-app &
echo $my-app-pid

Pero no sé cómo obtener el pid del comando recién ejecutado.

Sé que puedo usar el jobs -p my-app comando para grep el pid. Pero si quiero ejecutar el Shell varias veces, este método no funcionará. Porque jobspec es ambiguo.

274
David S.

El PID del último comando ejecutado está en $! Variable de shell:

my-app &
echo $!
364
enzotib

Obtenga PID:

#!/bin/bash
my-app &
echo $!

Guardar PID en variable:

#!/bin/bash
my-app &
export APP_PID=$!

Guarde todas las instancias PID en el archivo de texto:

#!/bin/bash
my-app &
echo $! >>/tmp/my-app.pid

Guardar resultados, errores y PID en archivos separados:

#!/bin/bash
my-app >/tmp/my-app.log 2>/tmp/my-app.error.log &
echo $! >>/tmp/my-app.pid

echo "my-app PID's: $(cat /tmp/my-app.pid)"
71
Eduardo Cuomo

Intenta algo como

pidof my_app >> /tmp/my_app.pid
3
Piyush Jain

También puede usar pkill para esto Con pkill puede especificar el nombre del proceso y evitar obtener el pid

https://linux.die.net/man/1/pkill

0
yath