Como eu inicio 3 processos no mesmo terminal, e depois saio todos os 3 facilmente?

0

Eu posso facilmente iniciar 3 processos em 3 terminais diferentes, e matar cada um pressionando Ctrl + C . Agora, existe alguma maneira de iniciar todos os 3 processos de uma só vez e depois terminá-los com igual facilidade? Idéias:

  1. Se eu pudesse iniciar 3 processos de tal forma que eles rodassem no mesmo terminal, e Ctrl + C matasse todos os 3, isso funcionaria.

  2. Se eu pudesse criar dois scripts, init.sh e kill.sh que iniciariam / matariam os 3 processos, isso também funcionaria.

Ambos os trabalhos porque são fáceis. Ter que gerar um processo em segundo plano, depois encontrar seu pid, copiá-lo e depois matá-lo com outro comando não é fácil.

    
por MaiaVictor 01.02.2017 / 02:34

1 resposta

8

Usando o controle de trabalho do bash:

$ sleep 10m & sleep 11m & sleep 12m &
[1] 1821
[2] 1822
[3] 1823
$ jobs
[1]   Running                 sleep 10m &
[2]-  Running                 sleep 11m &
[3]+  Running                 sleep 12m &
$ kill %1 %2 %3
$ jobs
[1]   Terminated: 15          sleep 10m
[2]-  Terminated: 15          sleep 11m
[3]+  Terminated: 15          sleep 12m

No bash, executar command & envia para o segundo plano. Dessa forma, você pode iniciar vários comandos no mesmo shell, executando em segundo plano. O kill builtin pode ser usado para matar esses trabalhos em segundo plano. A primeira tarefa ativa (mais antiga) é %1 , a próxima é %2 e assim por diante. Veja também: Mate todos os trabalhos em segundo plano

    
por 01.02.2017 / 06:31