Um processo que foi iniciado em uma sessão do tmux adormeceu?

0

Um processo que foi iniciado em uma sessão do tmux adormece? Se sim, qual é a (s) causa (s), como evitá-lo?

Exemplo de motivo para a pergunta: Eu comecei um processo em um servidor ontem (treinando redes neurais, ele imprime a época de treinamento atual para stdout). Eu tinha uma janela dividida e, no que estava com o processo em execução, eu tinha ativado o modo de rolagem antes de me separar da sessão.

Hoje volto e não fiz progresso algum.

Mais especificamente, a época é a mesma. Depois de sair do modo de rolagem, agora continuava feliz.

O log lê algo como

...
Epoch 40: 1h few mins
Epoch 41: 12h few mins
Epoch 42: 12h few more mins
...
Epoch 73: 13h

Ou seja, o tempo que demorou para chegar da época 0 a 49 foi definitivamente inferior a duas horas; das épocas 40 a 41 levou cerca de 11 horas (!), da época 41 a 76 o tempo médio por época foi de cerca de 1,7 minutos. As épocas estão em um loop, e não deve haver uma razão pela qual se leva cerca de 400 vezes mais do que os outros.

Informação adicional: Esse 'sono' não acontece toda vez que eu me solto enquanto estou no modo de rolagem. Mas isso já aconteceu antes. O modo de rolagem pode não ter nada a ver com isso.

O programa é um script python, incluindo o código tensorflow em execução em uma GPU; o comando para executar foi:

python train_script.py 2>&1 | tee train_log.txt.

Para o tmux eu uso tmux attach para reconectar, o mapeamento de chave padrão e ctrl-b + d para desanexar, ctrl-b + up(number block) para iniciar a rolagem, q para sair do modo de rolagem.

    
por dasWesen 11.08.2018 / 13:31

1 resposta

0

Can a process that was started in a tmux session fall asleep?

Basicamente, todo o tmux fazendo é anexar os próprios descritores de arquivo no lugar de STDIN / STDOUT / STDERR a um processo em execução dentro de tmux , que permite que ele funcione enquanto desanexado do console.

Abaixo está um script simples que você pode executar usando o mesmo fluxo de trabalho (anexando / desconectando tmux session) que você descreveu:

#!/bin/sh

c=1000

while [ $c -ne 0 ]; do
  date '+%Y-%m-%dT%H:%M:%S' | tee -a log.txt
  sleep 1
done

mesmo que você mude para o modo de rolagem e, em seguida, desconectado de tmux session, ele ainda continue em execução, você pode verificar o log.txt file, por isso não é um problema com tmux .

    
por 11.08.2018 / 13:56