Não ( mas pode haver outra maneira de resolver seu problema ) . É impossível, fora do cliente, distinguir um processo de cliente suspenso de um link de rede que está descartando ou atrasando pacotes.
Posso saber se o cliente ssh
está suspenso?
Vamos supor que eu corra:
ssh server command
e em outra janela
killall -STOP ssh
O command
pode detectar isso de alguma forma? Eu imagino que poderia detectá-lo enviando lotes de dados stdout / stderr e se isso bloqueia, então isso indicaria que o programa cliente foi suspenso.
Mas isso pode ser feito sem enviar dados para stderr / stdout?
Plano de fundo
Quando o GNU Parallel executa tarefas remotas, elas cometem suicídio quando o mestre morre. Isso é feito usando um wrapper e funciona bem. Mas se o mestre estiver apenas suspenso, os trabalhos remotos não serão suspensos. Se eu do terminal remoto puder detectar que o mestre está suspenso, posso criar um wrapper que suspenda o trabalho.
Não ( mas pode haver outra maneira de resolver seu problema ) . É impossível, fora do cliente, distinguir um processo de cliente suspenso de um link de rede que está descartando ou atrasando pacotes.