Tengo dos comandos cmd1 y cmd2. De los dos, cmd2 tarda más en terminar. Necesita ejecutar cmd2 y luego cmd1.
Intenté ejecutarlos de la siguiente manera:
bash$ (nohup ./cmd2>result2 &) && nohup ./cmd1>result1 &
o
bash$ (nohup ./cmd2>result2 &) ; nohup ./cmd1>result1 &
Pero en ambas ocasiones puedo ver que cmd1 no está esperando que cmd2 termine y se llene el resultado1.
¿Cómo hacer que cmd1 se ejecute después de cmd2 cuando ambos deberían ser nohup y ejecutarse en segundo plano?
shell
process
background-process
nohup
usuario33767
fuente
fuente
Respuestas:
Hiciste ambas cosas
cmd1
ycmd2
corriste en paralelo. Usted dijo: “Comience cmd2 en segundo plano y corte cualquier asociación con él. Inicie cmd1 en segundo plano y corte cualquier asociación con él ". Querías decir: "Iniciar cmd2 en segundo plano; cuando esté completo, comience cmd1 (también en segundo plano) ". Como ya no hay ninguna asociación con la tarea en segundo plano, debe idear una tarea en segundo plano que realice cmd2 y luego cmd1. Esto escmd2; cmd1
(o mejor dicho,cmd2 && cmd1
ejecutar cmd1 solo si cmd2 tiene éxito), y deberá indicarnohup
que se inicie un shell en segundo plano para eso.fuente
Si no te importa no usar nohup:
fuente
Simplemente use:
fuente
díganos qué está haciendo exactamente con cmd2 y cmd1. Depende del tipo de tarea y salida que desee de su comando. Si se enfrenta a un problema al presionar dos veces la tecla Intro con el comando, mi publicación puede resolverlo
puedes ir por este camino también
Vea la siguiente captura de pantalla, Aquí estoy usando 3 comandos y todos se ejecutan uno por uno en serie. Utilicé backticks para esta tarea. En la captura de pantalla también puede observar la marca de fecha y hora. el comando sleep tiene 60 segundos, por lo tanto, después de 60 segundos, mi siguiente comando se ejecuta con éxito. Utilicé el comando jobs para verificar si algún comando aún se ejecuta en segundo plano. Aquí no. de los trabajos que puede ver es 1.
Esta captura de pantalla también está disponible en este enlace , si no está visible
fuente