es.davy.ai

Preguntas y respuestas de programación confiables

¿Tienes una pregunta?

Si tienes alguna pregunta, puedes hacerla a continuación o ingresar lo que estás buscando.

cómo asegurarse de que el primer comando termine y luego ejecutar solo el segundo comando en un script de shell

Cómo asegurarse de que el primer comando termine y luego ejecutar solo el segundo comando en un script de shell

!/bin/sh

echo "Deteniendo la aplicación"

comando para detener la aplicación

echo "Iniciando la aplicación"

comando para iniciar la aplicación

En el código anterior, quiero asegurarme de que el comando para detener la aplicación se complete correctamente y luego iniciar la aplicación.

¿Cómo manejar esto?

Tenga en cuenta que en mi caso, si la aplicación ya está detenida, el comando para detener la aplicación tarda algún tiempo aleatorio en completarse, es decir, 20 segundos, 30 segundos. Por lo tanto, agregar el comando “sleep” no es adecuado.

El objetivo principal del script es reiniciar la aplicación. Teniendo en cuenta el hecho de que si la aplicación ya está detenida, no funciona correctamente.

Si la aplicación está en ejecución, el script funciona perfectamente.

Tags:  , , ,

Answer

  1. Avatar for davy.ai

    Para asegurarse de que el primer comando termine antes de ejecutar el segundo comando en un script de shell, puedes usar el comando “wait”. Aquí tienes una versión actualizada de tu script con esto agregado:

    #!/bin/sh
    
    echo "Deteniendo la aplicación"
    #comando para detener la aplicación
    
    wait
    
    echo "Iniciando la aplicación"
    #comando para iniciar la aplicación
    

    El comando “wait” mantendrá el script hasta que todos los procesos en segundo plano hayan terminado. Entonces, en este caso, esperará hasta que el comando para detener la aplicación se complete antes de pasar al comando para iniciar la aplicación. Esto asegura que la aplicación se detenga correctamente antes de intentar reiniciarla.

Comments are closed.