Mantenga un programa en ejecución después de cerrar una consola, después de que el programa se haya iniciado [duplicar]

8

Posible duplicado:
¿Cómo desconecto completamente un proceso de la Terminal?

Tengo un programa que se ejecuta en una consola Unix en una computadora remota Unix. Yo (estúpidamente) no lo ejecuté usando nohup &, y ahora necesito cerrar la consola local.

¿Hay alguna forma de que siga funcionando de forma remota después de cerrar la consola local?

Thrawn
fuente

Respuestas:

12

Si tu caparazón es bash, puedes usarlos disown. Ctrl-Z para suspender el proceso, luego disown -hpara que no reciba SIGHUP.

Douglas Leeder
fuente
Solución brillante Funcionó :-)
Thrawn
3
Simplemente curioso: a medida que se suspende el proceso, ¿no debería esto ser seguido bgo algo así? ¿O lo disown -hreanuda también?
Arjan
¿Funcionará esto si el proceso se ejecuta dentro screen? Me gustaría continuar ejecutando el proceso en mi xtermlugar habitual .
voces
IIRC una vez que se negó, no se conectará a ninguna terminal
Douglas Leeder
5

En Solaris 9, puede usar nohup -p <pid>para iniciar un proceso en ejecución. Aquí hay una explicación interesante de la implementación. No sé si esto se ha implementado en otros Unices.

asesino
fuente
nohup: opción no válida - p No funciona en gentoo, ubuntu o fedora (los unixes en los que probé esto), pero gracias de todos modos :-) Es bueno saber que Solaris lo tiene.
Thrawn
2

Ctrl-Z para suspender el proceso, luego bghacer que el programa pase al fondo y siga ejecutándose hasta que se complete.

Topo matricial
fuente
El problema es que si cierro la consola, también se detendrán los procesos en segundo plano. Necesito algo que separe el proceso de la consola, como nohup, pero después de que el proceso haya comenzado :-)
Thrawn
Y no creo que 'nohup bg &' funcione tampoco :-(
Thrawn
1
Lo probé en uno de mis sistemas y siguió funcionando bien cuando cerré la sesión (solo lo utilicé du / >> tempcomo programa de prueba), pero entiendo que tengo dudas si no quieres perder el programa o sus resultados.
Matrix Mole
2

Si puede permitirse detener el programa y reiniciarlo antes de cerrar la sesión, deténgalo y reinícielo a través de la pantalla , lo cual es imprescindible para cualquiera que use conexiones remotas a hosts Unix.

friki
fuente
1
Creo que el principal problema aquí es precisamente que a él no le gustaría detener el programa.
Gnoupi
1
Sí, me gustaría que el programa no se detuviera :-)
Thrawn
Recomiendo encarecidamente la pantalla para el uso futuro de tal situación (casi siempre tengo una sesión de pantalla ejecutándose en cualquier sistema que tenga un sehll o).
Matrix Mole
1
Varios años después, me di cuenta de que era un tonto por no estar usando la pantalla :-)
Thrawn