GNU/Linux >> Tutoriales Linux >  >> Linux

Ssh:¿cómo rechazar un proceso en ejecución y asociarlo a un nuevo shell de pantalla?

Tengo un programa en ejecución en un shell SSH. Quiero pausarlo y poder reanudar su ejecución cuando regrese.

Una forma en que pensé en hacerlo fue transferir su propiedad a un shell de pantalla, manteniéndolo así funcionando allí.

¿Hay alguna forma diferente de proceder?

Respuesta aceptada:

Puede revocar la "propiedad" del programa desde el shell con disown integrado:

# press Ctrl+Z to suspend the program
bg
disown

Sin embargo, esto solo le dice al shell que no envíe un SIGHUP señal al programa cuando el shell sale. El programa conservará cualquier conexión que tenga con el terminal, generalmente como flujos estándar de entrada, salida y error. No hay forma de volver a conectarlos a otro terminal. (La pantalla funciona emulando un terminal para cada ventana, por lo que los programas se adjuntan a la ventana de la pantalla).

Es posible volver a adjuntar los descriptores de archivo a un archivo diferente adjuntando el programa en un depurador (es decir, usando ptrace ) y haciéndolo llamar open , dup y close . Hay algunas herramientas que hacen esto; este es un proceso complicado y, a veces, bloquearán el proceso. Las posibilidades incluyen (enlaces recopilados de las respuestas a ¿Cómo puedo desautorizar un proceso en ejecución y asociarlo a un nuevo shell de pantalla? y ¿Puedo nohup/filtrar un proceso ya iniciado?):

  • agarrar (y el criopid más ambicioso)
  • Neercs
  • redireccionar
  • reptyr
  • retty

Linux
  1. ¿Cómo permitir SFTP y no permitir SSH?

  2. ¿Cómo enumerar las sesiones de pantalla en ejecución?

  3. ¿Cómo sé si estoy ejecutando un shell anidado?

  4. ¿Cómo ejecutar Node.js como un proceso en segundo plano y nunca morir?

  5. La tubería rota EC2 ssh finaliza el proceso en ejecución

¿Cómo instalar y usar Linux Screen?

Conceptos básicos de Linux:cómo crear e instalar claves SSH en el Shell

Cómo encontrar y matar procesos en ejecución en Linux

Cómo encontrar el ID de proceso de un programa y eliminarlo [Consejo rápido]

Cómo instalar y usar Nu Shell en Linux

Cómo escribir y ejecutar un programa C en Linux