ver trabajos segundo procesos proceso primer plano ejecucion detener corriendo bash parallel-processing

bash - trabajos - ¿Cuál es el significado de los signos `+`, `-` y` `que preceden a` Hecho ''cuando finaliza un proceso en segundo plano?



ver procesos en segundo plano linux (2)

Así que aquí está mi entendimiento de ello:

1- Trabajo marcado o que tiene un + es el último que se envió al fondo.

2- Trabajo marcado o que tiene un - se envió al fondo en segundo lugar.

3- Otros trabajos de fondo no están marcados.

Aquí hay un ejemplo que acabo de ejecutar en mi sistema:

$bash: /singh/test1 & [1] 9223 $bash: /singh/test2 & [2] 9226 $bash: /singh/test3 & [3] 9234 $bash: /singh/test4 & [4] 9237 $bash: jobs [1] Running /singh/test & [2] Running /singh/test2 & [3]- Running /singh/test3 & [4]+ Running /singh/test4 &

Pude ver desde man bash :

Hay varias formas de referirse a un trabajo en el shell. El carácter% introduce una especificación de trabajo (jobspec). El número de trabajo n puede denominarse% n. También se puede hacer referencia a un trabajo utilizando un prefijo del nombre utilizado para iniciarlo, o utilizando una subcadena que aparece en su línea de comando. Por ejemplo,% ce se refiere a un trabajo detenido. Si un prefijo coincide con más de un trabajo, bash informa de un error. El uso de% ce, por otro lado, se refiere a cualquier trabajo que contenga la cadena ce en su línea de comando. Si la subcadena coincide con más de un trabajo, bash informa de un error. Los símbolos %% y% + se refieren a la noción de shell del trabajo actual, que es el último trabajo detenido mientras estaba en primer plano o se inició en segundo plano. Se puede hacer referencia al trabajo anterior usando% -. Si solo hay un solo trabajo,% + y% - ambos pueden usarse para referirse a ese trabajo. En la salida correspondiente a los trabajos (por ejemplo, la salida del comando de trabajos), el trabajo actual siempre se marca con un +, y el trabajo anterior con un -. Un solo% (sin la especificación del trabajo que lo acompaña) también se refiere al trabajo actual.

Pregunta

¿Cuáles son los significados de + , - y ¿Signos que preceden Done cuando un proceso de fondo termina?

Ejemplos de interes

Código 1

(sleep 4s; echo first)& (sleep 2s; echo second)& (sleep 1s; echo third)& [1] Done ( sleep 4s; echo first ) [2]- Done ( sleep 2s; echo second ) [3]+ Done ( sleep 1s; echo third )

Código 2

(echo first)& (echo second)& (echo third)& [1]+ Done ( echo first ) [2]+ Done ( echo second ) [3]+ Done ( echo third )


%+ : current job; last job stopped in foreground or started in background %- : last/previous job %% : same as +

%+ no solo se muestra para el cambio de estado en un trabajo en segundo plano, sino también para un trabajo en primer plano, por ejemplo, que se ha suspendido con kill -STOP <pid> .

$ sleep 10 [1]+ Stopped sleep 10 # by running kill -STOP 28105 on another terminal

Vea Bash Job Control Basics para más detalles.

El número de trabajo n puede denominarse ''% n''. Los símbolos ''%%'' y ''% +'' se refieren a la noción de shell del trabajo actual, que es el último trabajo detenido mientras estaba en primer plano o se inició en segundo plano. Un solo ''%'' (sin la especificación del trabajo que lo acompaña) también se refiere al trabajo actual. Se puede hacer referencia al trabajo anterior usando ''% -''. Si solo hay un solo trabajo, ''% +'' y ''% -'' se pueden usar para referirse a ese trabajo. En la salida correspondiente a trabajos (p. Ej., La salida del comando de trabajos), el trabajo actual siempre se marca con un ''+'', y el trabajo anterior con un ''-''.

Con múltiples trabajos ejecutándose en segundo plano, bash muestra el trabajo, cuando se ha cambiado su estado y cuando llega a otro prompt . Para ver el trabajo inmediatamente cuando el trabajo cambia su estado / finaliza, se puede usar set builtin.

$ set -b $ sleep 10 & [1] 27866 $ sleep 10 & [2] 27868 $ [1]- Done sleep 10 [2]+ Done sleep 10