Mover el programa en ejecución a segundo plano en bash

10

Si estoy ejecutando un programa en bash, puedo suspenderlo presionando Ctrl+ Z. Si quiero dejar el programa en ejecución, entonces puedo usar el bgcomando. ¿Hay alguna forma de poner el programa directamente en segundo plano, sin tener que escribir bg?

Aclaración : quiero poner el programa en segundo plano cuando ya se está ejecutando, sin suspenderlo.

Kalle Elmér
fuente
2
Esto no es un duplicado. No quiero mantener un programa en ejecución cuando la ventana del terminal está cerrada, y no puedo escribir un comando diferente. Quiero poner un proceso en segundo plano cuando ya se está ejecutando.
Kalle Elmér
1
sí, esto no es un duplicado, vuelva a abrir esto.
saji89
Gracias por todos los tipos que ayudaron a reabrir esto ... @Kalle, la pregunta ahora se ha reabierto.
saji89
¡Muchas gracias! En cuanto a encontrar una respuesta para la pregunta, creo que la única forma es suspenderla primero y luego ponerla en segundo plano.
Kalle Elmér

Respuestas:

4

No creo que sea posible mover un programa en ejecución a segundo plano (mientras el proceso aún está en estado de ejecución).
Sin embargo, existe una aplicación llamada GNU-Screen , en la que puede ejecutar cualquier número de aplicaciones basadas en consola (shells de comandos interactivos, aplicaciones basadas en maldiciones, editores de texto, etc.) dentro de un solo terminal.
Aquí hay un buen tutorial sobre GNU-Screen.
Tenga en cuenta que no hace exactamente lo que solicitó, pero de todos modos cumple el propósito.
Ejemplo:
Aquí está la implementación de lo que solicitó usando GNU-Screen.

  1. Ejecutar screen
    Obtendrá detalles sobre el software. Presione regresar.
  2. Ahora, verá su terminal normal. Sin embargo, es una ventana de pantalla vlc. Escriba cualquier comando que diga . Comenzará el proceso dentro de esa ventana.
  3. Ahora, para abrir una nueva ventana, escriba Ctrl+ Ay luego C. Puede ejecutar un nuevo comando aquí. Tenga en cuenta que el proceso que inició en la ventana 1 todavía se está ejecutando.
  4. Para desconectarse de la pantalla, presione Ctrl+ Ay luego D. Ahora vuelve a su antiguo término. Sin embargo, cualquier proceso que inició desde la pantalla todavía se está ejecutando.
encender
fuente
4

Hasta donde sé, puede ejecutarlo y luego agregar un & después de este modo:myprogram &

Sin embargo, puedo estar muy equivocado aquí.

[EDITAR]: si observa esto más de cerca, si ejecuta lo anterior, la aplicación se cerrará cuando cierre el terminal. Si desea que la aplicación se ejecute en segundo plano, hasta donde yo sé, la aplicación debe escribirse de tal manera que admita el comportamiento del demonio.

[EDITAR 2]: nohup command & parece estar más cerca de lo que quieres lograr. Nohup permitirá que se ejecute una aplicación, e ignorará su entrada y redirigirá su salida a un archivo llamado nohup.outen el directorio actual.

NlightNFotis
fuente
Realmente no me importa si está cerrado cuando cierro la ventana de terminal. Todo lo que estoy buscando es un atajo de teclado en bash que funcione como Ctrl + Z pero mantendrá el proceso ejecutándose en segundo plano, en lugar de suspenderlo.
Kalle Elmér
0

Esto puede no ser una respuesta real. Me pregunto cuál es la diferencia de Bash entre Ubuntu con MSYS.

Ejecuto MSYS y cuando lo ejecuto Application/Chrome &, inmediatamente voy al proceso en segundo plano. Puedo usar el bash de MSYS como el próximo mensaje que comienza a parpadear.

¿Y son estas preguntas Mover el programa en ejecución a segundo plano con intentos similares?

Edward Chan JW
fuente