A solução mais simples seria usar timeout
da coleção de GNU coreutils (provavelmente instalada por padrão na maioria dos sistemas Linux):
timeout 10 ./sopare.py -l
Consulte o manual para este utilitário para mais opções ( man timeout
). Em sistemas não-GNU, este utilitário pode ser instalado como gtimeout
se o GNU Coreutils estiver instalado.
Outra alternativa, se o GNU Coreutils não estiver disponível, é iniciar o processo em segundo plano e esperar 10 segundos antes de enviar um sinal de terminação:
./sopare.py -l &
sleep 10
kill "$!"
$!
será o ID do processo do processo em segundo plano iniciado mais recentemente, neste caso do seu script Python.