GNU/Linux >> Tutoriales Linux >  >> Linux

¿Cómo obtener el ID de proceso del proceso en segundo plano?

Debe guardar el PID del proceso en segundo plano en el momento de iniciarlo:

foo &
FOO_PID=$!
# do other stuff
kill $FOO_PID

No puede usar el control de trabajos, ya que es una función interactiva y está vinculada a una terminal de control. Una secuencia de comandos no necesariamente tendrá un terminal adjunto, por lo que el control del trabajo no estará necesariamente disponible.


Puedes usar el jobs -l comando para llegar a un trabajo en particularL

^Z
[1]+  Stopped                 guard

my_mac:workspace r$ jobs -l
[1]+ 46841 Suspended: 18           guard

En este caso, 46841 es el PID.

Desde help jobs :

-l Informe el ID del grupo de procesos y el directorio de trabajo de los trabajos.

jobs -p es otra opción que muestra solo los PID.


  • $$ es el pid del script actual
  • $! es el pid del último proceso en segundo plano

Aquí hay una transcripción de muestra de una sesión de bash (%1 se refiere al número ordinal del proceso en segundo plano visto desde jobs ):

$ echo $$
3748

$ sleep 100 &
[1] 192

$ echo $!
192

$ kill %1

[1]+  Terminated              sleep 100

Linux
  1. ¿Cómo obtener la identificación del proceso para eliminar un proceso nohup?

  2. Proceso de Linux en segundo plano - ¿Se detuvo en los trabajos?

  3. ¿Cómo obtener ps para imprimir grupo?

  4. ¿Cómo obtener PID por nombre de proceso?

  5. ¿Cómo obtener solo todos los ID de proceso en ejecución?

Cómo matar un proceso en Linux

Cómo obtener el uso de la CPU de un solo proceso en Linux

¿Cómo suspender y poner en primer plano un proceso en segundo plano?

¿Cómo un proceso en segundo plano conoce su propio Pid?

Cómo enviar procesos a segundo plano en Linux

Cómo obtener pid del proceso recién iniciado