Como fechar todos os processos em segundo plano no unix?

3

Eu tenho algo como:

cd project && python manage.py runserver &
cd utilities && ./coffee_auto_compiler.py

E eu quero que ambos fechem em Ctrl-C (ou algum outro comando). Como posso conseguir isso?

EDITAR : Eu tentei usar jobs -x kill e kill ''jobs -p , mas não parece matar o que eu preciso. Aqui está o que quero dizer:

moon      8119  0.0  0.0   7556  3008 pts/0    S    13:17   0:00 /bin/bash
moon      8120  6.8  0.4  24568 18928 pts/0    S    13:17   0:00 python manage.py runserver

jobs -p me dá apenas o processo 8119, mas também preciso fechar 8120, já que é a primeira coisa que o primeiro comando abriu.

Se isso ajudar, os comandos estão realmente em um Makefile, e eu quero que ele execute dois daemons ao mesmo tempo (e de alguma forma os feche ao mesmo tempo). E sim, estou usando o Ubuntu, com o bash

    
por Gabi Purcaru 04.01.2011 / 11:25

4 respostas

1

maneira mais fácil? desde que eu não sei qual distro você está usando, mal assumo seu ubuntu. sistema > preferências > atalhos de teclado. clique em add, nomeie-o, cole seus comandos da seguinte forma: "command1", "command2" click add. clique no novo atalho, defina a tecla de atalho.

Se isso não funcionar por algum motivo, crie um lançador com os comandos, verifique se ele faz o que você deseja e, em seguida, use as instruções acima para ligar o ativador ao atalho.

    
por 04.01.2011 / 12:00
1

Para eliminar todas as imagens em segundo plano das tarefas em execução no shell Korn (ksh) ou no shell Bourne-again (bash), digite:

kill 'jobs -p'

No bash, você também pode usar a seguinte variante:

jobs -x kill

fonte

    
por 04.01.2011 / 12:01
1

pstree

e depois matar o processo raiz usando kill ou pskill estes comandos podem não estar disponíveis na sua distro

    
por 04.01.2011 / 12:55
0

Se você incluir seus comandos em backticks:

'cd project && python manage.py runserver' &
'cd utilities && ./coffee_auto_compiler.py' &

e executá-lo com sessão bash você seria capaz de matar todos eles com a única Ctrl + C .

Mas você não seria capaz de usar Ctrl + C no terminal e, ao mesmo tempo, não matar todos os comandos "backticked" que estavam sendo executados neste terminal.

    
por 20.01.2016 / 17:37

Tags