Tenho encontrado um problema ao tentar simular "Ctrl + C" em um script bash. Basicamente, estou tentando simular pressionamentos de tecla após a execução de outro comando. Embora eu pareça não ter nenhum problema em encerrar o script por completo, estou apenas tentando interrompê-lo sem realmente interrompê-lo ou fechá-lo ou, se possível, continuar com o restante do script.
Esta é a linha do problema aqui:
netstat -a -c & sleep 60 && kill SIGHUP 26777
Eu só quero fazer a varredura por um minuto e interromper sem fechar/encerrar. Eu tentei todas as combinações de comandos que consigo imaginar. Algumas das soluções que vi parecem incrivelmente complicadas e só resultaram em erro para mim. Existe uma maneira mais fácil de fazer isso? -Desde já, obrigado
Responder1
Que tal agora:
[user1@centos6 ~]$ netstat -a -c > /tmp/tmp.netstat-out & (nsPID=$! ; sleep 10 ; kill -STOP $nsPID)
[1] 25658
[user1@centos6 ~]$
[1]+ Stopped netstat -a -c > /tmp/tmp.netstat-out
[user1@centos6 ~]$ ps -p 25658
PID TTY TIME CMD
25658 pts/1 00:00:00 netstat
[user1@centos6 ~]$ jobs
[1]+ Stopped netstat -a -c > /tmp/tmp.netstat-out
[user1@centos6 ~]$ kill -CONT %1
[user1@centos6 ~]$ jobs
[1]+ Running netstat -a -c > /tmp/tmp.netstat-out &
[user1@centos6 ~]$
Paro o processo com o sinal SIGSTOP após 10 segundos (estou impaciente ;-)) e posso reiniciá-lo a qualquer hora que quiser com o sinal SIGCONT ( kill -CONT
PID)