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.
El PID del último comando ejecutado está en $!
Variable de shell:
my-app &
echo $!
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)"
Intenta algo como
pidof my_app >> /tmp/my_app.pid
También puede usar pkill para esto Con pkill puede especificar el nombre del proceso y evitar obtener el pid