Como reiniciar um trabalho em segundo plano falhou devido a "tubo quebrado"

Como reiniciar um trabalho em segundo plano falhou devido a "tubo quebrado"

Eu tinha um processo em segundo plano em execução, cujo comando começa com "nohup nice". Como normalmente leva 20 horas, deixei-o funcionando durante a noite. No entanto, recebi uma mensagem dizendo "falha na gravação: cano quebrado" esta manhã, provavelmente porque o servidor fecha conexões que estão ociosas por muito tempo. Quando entrei no servidor novamente, não há trabalho quando digito o comando "jobs". Como posso reiniciar o programa de onde ele foi deixado, em vez de executá-lo desde o início?

Responder1

Depende de onde você viu essa mensagem. Se você estiver se conectando ao servidor via ssh e viu isso em seu terminal local, tudo bem. O processo provavelmente ainda está funcionando perfeitamente no servidor remoto. Você não o verá jobsporque jobsmostra apenas os processos em execução na sessão atual do shell. Se você se reconectou ao servidor, terá iniciado uma nova sessão, portanto jobsnão ajudará. Tente correr ps aux | grep ProcessNamepara verificar se ainda está em execução.

Se você viu esta mensagem em nohup.outseu arquivo de saída, não pode. Não, a menos que seja um processo que de alguma forma suporte a retomada. O erro significa que o processo foi interrompido. Como foi interrompido, desapareceu, não há como recuperá-lo.

Se isso fosse, por exemplo, ler um arquivo de entrada e produzir uma saída, você poderia tentar descobrir quando ele parou e executá-lo novamente, fornecendo apenas as linhas restantes como entrada. Não há nenhum truque que possa fazer com que ele reinicie magicamente, já que não há registro de quando ele parou.

informação relacionada