Eu tenho um servidor baseado em python que inicio no terminal. Essa instância específica do terminal fornece controle ao programa, e o programa o utiliza como uma espécie de janela de registro, até que seja fechada. Isso é normal ou devo, de alguma forma, tentar iniciar o programa de alguma outra maneira pela qual ele simplesmente aparecerá como um processo ativo? Se eu fechar o terminal a partir do qual iniciei o programa, o programa morrerá com ele.
Obrigado
command-line
python
services
U2ros
fonte
fonte
Respostas:
Até o bash antigo está usando & para enviar processos para o plano de fundo, mas existem algumas outras maneiras também ... mas duas básicas são:
Alguns outros comandos úteis:
fonte
Transforme-o em um daemon (serviço)
daemon --name="yourservicename" --output=log.txt sh yourscript.sh
fonte
O uso
&
faz com que o programa seja executado em segundo plano, em vez de bloquear o shell até que o programa termine.fonte
dixon@dixon-vaio:~$ nautilus & [1] 11835
. Ele retorna a identificação do processo e você receberá um novo prompt de shell. Verifique também: http://unix.stackexchange.com/questions/3886/difference-between-nohup-disown-and .Você também pode usar:
aqui está o script init.d para iniciar e parar um programa em segundo plano.
fonte
No terminal, você também pode executar
screen
ou acompanhar o comando&
. Maneira fácil de executar processos contínuos.fonte
&
como pano de fundo o processo nesse caso é pouco, na minha opinião. OP afirma que seu servidor faz logon no stdout, portanto, com&
seu terminal estará cheio de saída. Além disso, como o OP menciona o fechamento do terminal , o OP não poderá voltar ao primeiro plano do processo e toda a saída do log será perdida. Melhor, pelo menos, para redirecioná-lo para um arquivo de log ou vara com ascreen
configuração - mas, por favor, explicar os conceitos básicos descreen
a OP (detach / attach / etc)