Como reiniciar um trabalho em segundo plano com falha devido a “cano quebrado”

2

Eu tive um processo em segundo plano em execução, do qual o comando começa com "nohup nice". Como normalmente leva 20 horas, então eu tive que correr durante a noite. No entanto, recebi uma mensagem dizendo "write failed: broken pipe" esta manhã, provavelmente porque o servidor fecha as conexões que estão ociosas por muito tempo. Quando eu entrei no servidor novamente, não há trabalho quando digito o comando "jobs". Como posso reiniciar o programa de onde ele é deixado em vez de ser executado desde o começo?

    
por Fangting Xu 08.11.2015 / 14:11

1 resposta

4

Depende de onde você viu essa mensagem. Se você está se conectando ao servidor via ssh e viu isso no seu terminal local, você está bem. O processo provavelmente ainda está sendo executado felizmente no servidor remoto. Você não verá em jobs porque jobs mostra apenas os processos em execução na sessão atual do shell. Se você se reconectou ao servidor, terá iniciado uma nova sessão, então jobs não ajudará. Tente executar ps aux | grep ProcessName para verificar se ainda está em execução.

Se você viu essa mensagem em nohup.out ou em seu arquivo de saída, não é possível. Não, a menos que seja um processo que de alguma forma suporte a retomada. O erro significa que o processo foi interrompido. Desde que foi parado, se foi, não há como recuperá-lo.

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

    
por 08.11.2015 / 15:23

Tags