Puede revocar la "propiedad" del programa desde el shell con el disown
incorporado:
# press Ctrl+Z to suspend the program
bg
disown
Sin embargo, esto solo le dice al shell que no envíe una SIGHUP
señal al programa cuando el shell salga. El programa retendrá cualquier conexión que tenga con el terminal, generalmente como flujos de entrada, salida y error estándar. No hay forma de volver a conectarlos a otra 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 conectar los descriptores de archivo a un archivo diferente conectando el programa en un depurador (es decir, usando ptrace
) y haciendo que llame open
, dup
y close
. Hay algunas herramientas que hacen esto; Este es un proceso complicado, y a veces bloquean el proceso. Las posibilidades incluyen (enlaces recogidos de respuestas a ¿Cómo puedo renegar de un proceso en ejecución y asociarlo a un nuevo shell pantalla? Y ¿Puedo nohup / pantalla de un proceso iniciado ya-? ):