Terminal Linux, meu programa só é retomado após a rolagem da impressão

0

Estou usando o Ubuntu 12.04, unity. Eu tenho um programa em execução no terminal. É suposto ser executado por ~ 10 horas. Mas parou depois que voltei depois de algumas horas. O uso da CPU mostra que o programa não está sendo executado. Então eu verifiquei a impressão, rolando a janela do terminal. Depois que eu movi a barra de rolagem para o topo (de alguma forma a janela está vazia e nenhuma impressão pode ser vista no ponto) e apertei a tecla de retorno, meu programa foi retomado repentinamente. Então, como posso definir os parâmetros para que meu programa não pare?

Rolar de volta é definido para 1024 linhas (a impressão do meu programa é muito mais do que isso).

    
por HongboZhu 25.05.2012 / 09:16

2 respostas

1

envie um SIGCONT ou SIGALRM para garantir que o programa esteja sendo executado em segundo plano. Acho que o kernel está suspendendo o processo.

$ killall -s SIGCONT PROG_NAME

ou

$ kill -SIGCONT PROG_PID

Também, por favor, verifique sua opção de energia e certifique-se de que o sistema não está dormindo.

PS: você pode gerá-lo como processo $./PROG & para garantir que não seja um problema terminal OU enviar a saída para o arquivo para deixar o buffer feliz $./PROG > output.txt

    
por 25.05.2012 / 10:03
0

A partir de sua descrição, acho que talvez haja uma entrada necessária por qualquer motivo.

Recentemente, tive uma experiência semelhante em que um script parou: o script chamado estava executando um comando mv e aguardava uma confirmação se um arquivo não pertencente ao usuário atual fosse removido, mas não consegui ver essa mensagem, porque infelizmente o programador desse script decidiu redirecionar stdout e stderr !

Assim, o seu problema pode ser semelhante a isso.

  1. Você pode tentar enviar respostas "sim" ao seu programa: yes | yourprog

  2. Você pode tentar redirecionar stdin : yourprog </dev/null

por 25.05.2012 / 16:38