Esta publicación puede ayudar. La recomendación es:
- Fondo del proceso (con Ctrl-Z, luego bg )
- ejecute disown -h% [jobid] (probablemente un bash-ism, por lo que tendrá que traducir para tcsh)
La mala noticia , por supuesto, es que el bg tendría que hacerse en el mismo shell en el que se ejecuta el proceso ... pero ... ya podría estar en segundo plano.
La muy mala noticia es que la llamada desconocida podría tener que hacerse en el mismo shell. En cuyo caso, sí, estás jodido. Pero no estoy seguro, tal vez la raíz pueda desconectarlo por la fuerza.
Hmm Posibles buenas noticias : tcsh hace el rechazo automáticamente:
Si tcsh sale anormalmente, rechaza automáticamente los trabajos que se ejecutan en segundo plano cuando sale.
Entonces, si su proceso a largo plazo ya está en segundo plano, matar a su padre tcsh debería permitir que continúe. El proceso ahora está desconectado de la terminal de inicio. (Si no, vea "malas noticias" arriba).
Desafortunadamente, no es pantalla, por lo que no hay una reconexión real. Puede simularlo con gdb quizás (nuevamente, desde el primer enlace):
[...] con algunos trucos sucios, no es imposible volver a abrir un proceso 'stdout / stderr / stdin.
Por lo tanto, aún podría crear una ventana de pantalla en blanco (por ejemplo, que ejecuta suspensión).
Y luego use gdb, por ejemplo, para adjuntarlo al proceso, haga una llamada close (0)
call close (1)
call close (2)
call open ("/ dev / pts / xx", ...)
call dup (0)
llamar a dup (0)
separar
La salida del proceso iría a la pantalla. No estaría conectado a ese terminal de pantalla, por lo que, por ejemplo, [sic] mataría el comando "dormir", no el proceso, pero eso podría ser suficiente para el OP.
Me pregunto si no debería haber "call dup (1)" y "call dup (2)" en ese proceso también ...