Uma abordagem seria instalar a ferramenta GNU timeout
via brew
:
$ brew install coreutils
Você pode ver que timeout
faz parte deste pacote:
$ brew list coreutils | grep timeout
/usr/local/Cellar/coreutils/8.29/bin/gtimeout
/usr/local/Cellar/coreutils/8.29/libexec/gnubin/timeout
/usr/local/Cellar/coreutils/8.29/libexec/gnuman/man1/timeout.1
/usr/local/Cellar/coreutils/8.29/share/man/man1/gtimeout.1
E então faça isso:
$ gtimeout 3 networksetup ....
Exemplo
Aqui estou fazendo algumas coisas extras. Estou usando time
para mostrar que o comando saiu depois de apenas 3 segundos, eu guardo o comando com um -k5
, que enviará um SIGTERM
para o comando se passar de 5 segundos.
$ time gtimeout -k5 3 sleep 10
real 0m3.005s
user 0m0.002s
sys 0m0.003s