Existe alguma maneira de iniciar a tela com um processo em segundo plano, mas não terminará quando o processo terminar?

2

Iniciar uma sessão de tela com um processo em segundo plano usando -d -m faz com que a sessão de tela termine quando o processo termina.

Existe alguma maneira de fazer com que a sessão da tela permaneça após o processo ser encerrado, mas ainda a inicie sem qualquer interação do usuário?

    
por fields 21.09.2009 / 21:49

3 respostas

3

Se o seu processo puder originar o /etc/profile ou /etc/bash.bashrc e seus respectivos arquivos $HOME , isso poderá funcionar para você:

screen -d -m bash  --init-file background-shell-script

Quando "background-shell-script" sai, a sessão de tela estará esperando por você em um prompt de shell quando você reconectar com screen -r . Se você reconectar antes que o processo seja concluído, você verá a saída que ele cria quando ocorrer e terá um prompt de shell quando terminar.

Para obter os arquivos de inicialização normais, adicione-os no início do seu script:

. /etc/profile
# more source statements, if needed
# do your stuff here
    
por 21.09.2009 / 23:58
0

Talvez se você encerrar a chamada em um shell script e invocar seu shell com a opção de mantê-lo em execução após o término do script.

    
por 21.09.2009 / 22:41
0

A chave aqui é que você deseja que o processo se separe do shell de controle ou tty. A maneira mais fácil de fazer isso é apenas executar nohup, ou seja, nohup whateverprocess. man nohup para mais informações.

Não está claro por que você gostaria que a sessão de tela permanecesse após o processo ser encerrado. presumivelmente para capturar a saída, mas isso pode ser facilmente redirecionado.

O único motivo para usar a tela é se você deseja que o processo seja executado, mas ainda precisa de entrada / saída padrão para controle. Em qualquer caso, é aconselhável evitar que, se possível, use apenas nohup e, se for um processo de longa duração, integre-o no processo de inicialização da máquina como um serviço de longa duração.

    
por 03.11.2009 / 06:54