Seu comando sudo tcpdump
deve entrar em segundo plano adicionando um e comercial &
à linha:
sudo tcpdump -i eth0 -w /media/usbhd-sd[b-c]1/abfrage2.pcap &
A linha pid1=$!
colocará o PID do comando sudo tcpdump
na variável pid1
Se você quiser matar o processo, use:
sudo kill $pid1
Você usou $$
, que representa o PID do processo em execução atual.
Como você está usando isso dentro de outro script, que você provavelmente chamará várias vezes, todas as execuções subsequenciais não terão uma variável pid1
utilizada.
Para obter o PID nessa variável, você pode usar:
pid1=$(pidof tcpdump)
na seção else
do seu script.
Ou simplesmente use:
sudo pkill tcpdump
Supondo que você tenha apenas uma cópia do tcpdump em execução.
Uma outra coisa que você precisa tomar cuidado. Toda vez que você chamar seu script e o $TIMEEND
não for igual a $Zeit
, ele iniciará outro processo tcpdump
. Uma solução melhor seria:
if [ "$TIMEEND" != "$Zeit" ] && [ "$(pidof tcpdump)" == "" ]
que testará o requisito de tempo e a existência de um processo tcpdump
.