Cómo reiniciar un trabajo en segundo plano falló debido a una "tubería rota"

Cómo reiniciar un trabajo en segundo plano falló debido a una "tubería rota"

Tenía un proceso en segundo plano en ejecución, cuyo comando comienza con "nohup nice". Como suele tardar 20 horas, lo hice funcionar durante la noche. Sin embargo, esta mañana recibí un mensaje que dice "Error de escritura: tubería rota", probablemente porque el servidor cierra las conexiones que están inactivas durante demasiado tiempo. Cuando volví a iniciar sesión en el servidor, no hay ningún trabajo cuando escribo el comando "trabajos". ¿Cómo puedo reiniciar el programa desde donde lo dejó en lugar de ejecutarlo desde el principio?

Respuesta1

Depende de dónde viste ese mensaje. Si se está conectando al servidor a través de ssh y vio esto en su terminal local, está bien. Probablemente el proceso todavía se esté ejecutando correctamente en el servidor remoto. No lo verá jobsporque jobssolo muestra los procesos que se ejecutan en la sesión actual del shell. Si se ha vuelto a conectar al servidor, habrá iniciado una nueva sesión, por lo que jobsno será de ayuda. Intente ejecutarlo ps aux | grep ProcessNamepara comprobar si todavía se está ejecutando.

Si vio este mensaje en nohup.outsu archivo de salida, no puede hacerlo. No, a menos que sea un proceso que de alguna manera permita reanudarlo. El error significa que el proceso se detuvo. Desde que lo detuvieron, desapareció, no hay forma de recuperarlo.

Si se tratara, por ejemplo, de leer un archivo de entrada y producir un resultado, podría intentar averiguar cuándo se detuvo y ejecutarlo nuevamente proporcionando solo las líneas restantes como entrada. Sin embargo, no existe ningún truco que pueda indicarle que se reinicie mágicamente, ya que no hay ningún registro de cuándo se detuvo.

información relacionada