Inicie e pare vários executáveis para facilitar a depuração

2

Estou depurando um projeto de rede, que envolve a interação de 3 programas, ou seja, um servidor, dois clientes diferentes. No entanto, acho difícil iniciar e pará-los para depuração. Alguns métodos que tentei até agora:

  • Inicie 3 terminais. Execute ./server , ./client1 , ./client2 . O problema com esse método é que preciso alternar entre as janelas.

  • Inicie o 1 terminal. Coloque-os em um script: ./server &;./client1 &;./client2 & . Execute o script. O problema com este método é matar os processos após a depuração ser difícil. Precisa procurar pelo PID e digite kill <PID> .

Existe uma maneira melhor de fazer isso? Como as pessoas costumam depurar nessa situação?

    
por Wei Shi 21.10.2011 / 18:33

1 resposta

1

Faça algo assim com o seu script de lançamento:

./server & server_pid=$!
./client1 & client1_pid=$!
./client2 & client2_pid=$!
echo 'kill "$@"' "$server_pid $client1_pid $client2_pid" >.kill.sh

E chame ./kill.sh para matar todos os processos. O ponto chave é usar $! para recuperar o PID do último comando em segundo plano. Você pode preferir outros métodos para armazená-lo e usá-lo posteriormente.

    
por 21.10.2011 / 19:01