¿Hay alguna manera de proporcionar tareas en serie en el terminal mientras se ejecuta una tarea (sin usar un archivo)? -- mmand-line campo con bash campo con job-control camp askubuntu Relacionados El problema

Is there a way to provide serial tasks on terminal while a task is executing (without using a file)?


14
vote

problema

Español

Supongamos que hay 2 tareas t1 , t2 que se puede ejecutar de forma en serie como a continuación:

  ABCDEFGHIJKLMNABCDEFGHIJKLMN5  

Ahora supongo que olvidé ejecutar t2 y abcdefhijklmnabcdefghijklmn7 ya se está ejecutando; ¿Puedo agregar t2 a la tubería para que se ejecute después de t1 termina?

Original en ingles

Suppose there are 2 tasks t1, t2 which can be executed in a serial way as below:

t1 ; t2 # OR t1 && t2 

Now suppose I forgot to run t2 and t1 is already running; can I add t2 to the pipeline so that it gets executed after t1 finishes?

        

Lista de respuestas

19
 
vote

sí, puedes:

  1. Pausa el trabajo actualmente en ejecución con el carácter de suspensión presionando ctrl + z .
  2. Tipo fg o % , agregue lo que desea la lista y ejecute, por ejemplo:
      fg ; systemctl suspend # or % ; systemctl suspend  
    Dado que ABCDEFGHIJKLMNABCDEFGHIJKLMN8 devuelve el valor de retorno del trabajo que reanudó, enumere a los operadores como && y abcdefhijklmnabcdefghijklmn10 trabaja como se espera:
      python1  

python2 / Control de empleo dice sobre el carácter de suspensión:

escribiendo el carácter Suspender (típicamente python3 , control - z ) Mientras que un proceso se está ejecutando causa que Proceso a detenerse y devolver el control a python4 . (...) El usuario puede manipular el estado de este Trabajo, utilizando el comando fgdefghijklmn15 para continuar en el fondo, el python6 comando para continuarlo en primer plano, o el comando python7 para matar eso. Un python8 tiene efecto inmediatamente, y tiene el efecto secundario adicional de causar que la salida pendiente y la cabeza de tipea se desechen.

python9 se explica en ABCDEFGHIJKLMNABCDEFGHIJKLMN20 / SHELL BURTING INDO :

FG [ Jobspec ]
Reanudar Jobspec en primer plano, y conviértalo en el trabajo actual. Si Jobspec no está presente, la noción de la concha del trabajo actual se utiliza. El valor de retorno es el del comando colocado en El primer plano, o el fracaso si se ejecuta cuando el control de trabajo está deshabilitado o, cuando se ejecuta con control de trabajo habilitado, si Jobspec no lo hace Especifique un trabajo válido o Jobspec Especifica un trabajo que se inició Sin control de trabajo.

Lectura adicional (aparte de python31 ) en Control de trabajo:

  • guía de scripting avanzado de Bash-Bash Capítulo 15.1. Comandos de control de empleo
  • Tutorial DIGITALOCEAN sobre cómo usar el control de trabajo de Bash
  • Artículo "PROZESSSTEUERUNG" en el Ubuntuusers Wiki (alemán)
 

Yes you can:

  1. Pause the currently running job with the suspend character by pressing Ctrl+Z.
  2. Type fg or %, add what you want to the list and execute it, e.g.:
    fg ; systemctl suspend # or % ; systemctl suspend
    Since fg returns the return value of the job it resumed, list operators like && and || work as expected:
    fg && echo "Finished successfully!" # or % && echo "Finished successfully!"

man bash/JOB CONTROL says about the suspend character:

Typing the suspend character (typically ^Z, Control-Z) while a process is running causes that process to be stopped and returns control to bash. (xe2x80xa6) The user may then manipulate the state of this job, using the bg command to continue it in the background, the fg command to continue it in the foreground, or the kill command to kill it. A ^Z takes effect immediately, and has the additional side effect of causing pending output and typeahead to be discarded.

fg is explained in man bash/SHELL BUILTIN COMMANDS:

fg [jobspec]
Resume jobspec in the foreground, and make it the current job. If jobspec is not present, the shell's notion of the current job is used. The return value is that of the command placed into the foreground, or failure if run when job control is disabled or, when run with job control enabled, if jobspec does not specify a valid job or jobspec specifies a job that was started without job control.

Further reading (aside from man bash) on job control:

  • TLDP Advanced Bash-Scripting Guide Chapter 15.1. Job Control Commands
  • DigitalOcean tutorial on How To Use Bash's Job Control
  • Article xe2x80x9cProzesssteuerungxe2x80x9d in the Ubuntuusers Wiki (German)
 
 
   
   
2
 
vote

Vi este método aquí: https://superuser.com/questions/334272/how-to-run-a-command-after-an-already-running-existing-one-finishes

Donde usted hace primero Ctrl + z para detener (suspender) la ejecución y luego ejecuta el comando perdido así: python32 y se ejecutará tan pronto como el python33 termine.

El ABCDEFGHIJKLMNABCDEFGHIJKLMN24 (Comando de primer plano) Llevará el trabajo suspendido en línea y el python35 se asegurará de que el comando perdido solo se ejecuta si el primer comando tiene éxito.

 

I saw this method here: https://superuser.com/questions/334272/how-to-run-a-command-after-an-already-running-existing-one-finishes

where you first do Ctrl+z to stop (suspend) the running one then you run the missed command like so: fg && ./missed_cmd.sh and it will run as soon as the fg finishes.

The fg (foreground command) will bring the suspended job online and the && will ensure that the missed command is only run if the first command succeeds.

 
 

Relacionados problema

9  ¿Cómo funciona un proceso SSH?  ( How do you background a ssh process ) 
Sé que puede suspender una sesión de SSH con ~ ^ Z, pero ¿también hay una manera de ampliarla para que continúe trabajando mientras hace algo más en la concha...

28  ¿Cómo detener un bash mientras se ejecuta en el fondo?  ( How to stop a bash while loop running in the background ) 
Comencé un bucle de rentas de la siguiente manera: while true; do {command}; sleep 180; done & AVISO EL ABCDEFGHIJKLMNABCDEFGHIJKLMN4 . Pensé que cu...

2  Administrador de colas para una computadora portátil?  ( Queue manager for a laptop ) 
¿Hay un administrador de colas livianas para Kubuntu? Algo así como Torque, pero como lo entiendo, Torque trabaja solo para grupos, mientras quiero lo similar...

9  ¿Cómo reanudar la funcionalidad de terminal después de emitir el comando "suspender"?  ( How to resume terminal functionality after issuing the suspend command ) 
Escribí suspend en mi terminal, y suspendido la ejecución. ¿Cómo vuelvo al funcionamiento normal del terminal? Lo he intentado Ctrl + C , ctrl + d...

13  ¿Cuál es el significado de y al final de un comando?  ( What is the meaning of at the end of a command ) 
Tengo una línea de script de inicio: pyprogramm >> /dev/null 2>&1 & Significados: >> /dev/null - redirect stdout to null device 2>&1 - redirect std...

31  ¿Cómo puedo ejecutar OpenVPN como raíz en el fondo, en un script?  ( How can i run openvpn as root in the background in a script ) 
Me gustaría escribir un script que llama openvpn primero, seguido de ssh . Al escribir el comando sudo openvpn ~/my_connection.ovpn En el símbolo de...

14  ¿Hay alguna manera de proporcionar tareas en serie en el terminal mientras se ejecuta una tarea (sin usar un archivo)?  ( Is there a way to provide serial tasks on terminal while a task is executing wi ) 
Supongamos que hay 2 tareas t1 , t2 que se puede ejecutar de forma en serie como a continuación: ABCDEFGHIJKLMNABCDEFGHIJKLMN5 Ahora supongo que olvi...

2  Detenga el programa de terminal si se ejecuta por más de x segundos  ( Stop program from terminal if running for more than x seconds ) 
Entonces escribiendo /.blabla Lanzamiento del programa Blabla. ¿Hay alguna manera, desde la terminal, para detener (es decir, equivalente de CTRL + C) ...

113  ¿Qué hacer cuando Ctrl-C no matará el trabajo corriendo?  ( What to do when ctrl c wont kill running job ) 
A veces, los procesos ignoran la señal SIGINT enviada por ctrl - c en bash. Por ejemplo, ABCDEFGHIJKLMNABCDEFGHIJKLMN1 Y ABCDEFGHIJKLMNABCDEFGHIJKLMN2 ...

73  ¿Qué debo hacer cuando recibo "Hay un error de trabajo detenido"?  ( What should i do when i get there are stopped jobs error ) 
Me enfrento a este tipo de situación muchas veces. Por ejemplo, siempre que intento abrir un archivo en ABCDEFGHIJKLMNABCDEFGHIJKLMN0 con ABCDEFGHIJKLMNA...




© 2022 respuesta.top Reservados todos los derechos. Centro de preguntas y respuestas reservados todos los derechos