shell Linux para executar pressionamento de tecla (CTRL + C)

1

Eu tenho encontrado um problema ao tentar simular "Ctrl + C" dentro de um script bash. Basicamente, estou tentando simular pressionamentos de tecla depois que outro comando foi executado. Embora pareça não ter nenhum problema em terminar o script todos juntos, estou apenas tentando interrompê-lo sem realmente eliminá-lo ou fechá-lo, ou, se possível, continuar com o restante do script.
 Esta é a linha de problemas aqui:

    netstat -a -c & sleep 60 && kill SIGHUP 26777   

Eu só quero analisar por um minuto e interromper sem fechar / terminar. Eu tentei todas as combinações de comandos que eu posso pensar. 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? -Obrigado antecipadamente

    
por ICE 09.06.2013 / 20:47

1 resposta

2

Que tal isso:

[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 ~]$ 

Interrompo o processo com o sinal SIGSTOP após 10 segundos (sou impaciente ;-)) e posso reiniciá-lo sempre que quiser com o sinal SIGCONT ( kill -CONT PID)

    
por 10.06.2013 / 16:15