Como posso executar um comando em segundo plano sem e comercial (&)? [fechadas]

2

Como posso executar um comando no plano de fundo no Bash sem e comercial (& amp;) no final de um comando?

Atualização: Eu quero fazer isso para que eu possa fazer while inotifywait -e modify app.py; do killall -9 python; python app.py &; done , mas isso não é possível por causa da sintaxe.

    
por wb9688 25.10.2015 / 16:34

2 respostas

3

Use coproc python app.py

De man bash

  

Coprocessos

     

Um coprocess é um comando shell precedido pela palavra reservada coproc. Um coprocess é executado de forma assíncrona          em um subshell, como se o comando tivesse sido terminado com o & amp; operador de controle, com um sistema de tubulação bidirecional          entre o shell de execução eo coprocess.

     

O formato de um coprocess é:

     

comando coproc [NAME] [redirecionamentos]

    
por Sergiy Kolodyazhnyy 26.10.2015 / 09:30
2

Sua sintaxe está um pouco errada:

while inotifywait -e modify app.py; do killall -9 python; python app.py &; done

Deve ser:

while inotifywait -e modify app.py; do killall -9 python; python app.py & done

Ao contrário dos idiomas semelhantes ao C, você não pode ter uma instrução vazia antes de ; ou & .

    
por muru 26.10.2015 / 10:53