Buenas.
Pues eso :D, me logeo via SSH a un server, corro un programa que demorara como 6 horas, lo mando a background y me salgo de la sesion SSH, despues regreso y miro que sigue en ejecucion, pero como lo recupero ??
Lo que actualmente hago para ponerlo en background y salir es:
casa$ ssh admin@miserver.com
miserver$ su
Password:
miserver# pwd
/root
miserver# php /root/public_html/programa.php
... emipieza a poner cosas
... mas cosas...
(pulso Ctrl+Z)
miserver# jobs
[1] Stopper php /root/public_html/programa.php
miserver# bg 1
[1] Running php /root/public_html/programa.php
// hasta aqui ya esta corriendo sin mi intervencion, y puedo recuperarlo todavia haciendo "fg 1"
// pero me tengo que ir porque voy a comer
miserver# exit
miserver$ exit
casa$
Hasta este punto, el programa se quedo en ejecucion y me sali de la conexion SSH, despues regreso a la conexion y puedo ver el proceso:
casa$ ssh admin@miserver.com
miserver$ su
Password:
miserver# ps aux|grep php
root 32564 php /root/public_html/programa.php
// el proceso es el: 32564
Como lo recupero para ponerlo en pantalla ??, OJO todo el tiempo esto en consola SSH.
Saludos !
Con fg más el id del proceso has probado??
Cita de: aguro90 en 30 Agosto 2018, 12:58 PM
Con fg más el id del proceso has probado??
No funciona, porque
fg manda a primer plano los procesos que esten en la lista de procesos de la sesion (puede verificarse con
jobs), y como
sali y volvi a entrar, pues ya es distinta sesion :(
Saludos !
Creo que por defecto cuando terminas la sesión de SSH todo lo que hayas invocado en ella termina, puede ser que tu programa no responda al SIGHUP de la shell y por eso se quede corriendo... Lo mas sencillo en tu caso es redirigir las salidas a un fichero, otra opción es lanzarlo dentro de screen o tmux, o usar Mosh en vez de SSH.
Suerte
Puedes lanzarlo con nohup para que no dependa de tu sesión