¿Cómo puede un script bash detectar si se está ejecutando en segundo plano?

Pregunta:

¿Hay alguna forma de que un script bash sepa si se está ejecutando en primer plano o en segundo plano y, por lo tanto, puede comportarse de manera ligeramente diferente en cada caso?

Respuesta:

Citando al man ps :

CÓDIGOS DE ESTADO DE PROCESO

   Here are the different values that the s, stat and state output
   specifiers (header "STAT" or "S") will display to describe the state of
   a process.
   ...
   +    is in the foreground process group

Entonces podrías realizar una simple verificación:

case $(ps -o stat= -p $$) in
  *+*) echo "Running in foreground" ;;
  *) echo "Running in background" ;;
esac

Leave a Comment

Your email address will not be published. Required fields are marked *

Scroll to Top

web tasarım