Me he encontrado con un problema al intentar simular "Ctrl + C" dentro de un script bash. Básicamente, estoy intentando simular pulsaciones de teclas después de ejecutar otro comando. Si bien parece que no tengo problemas para finalizar el script por completo, solo intento interrumpirlo sin eliminarlo ni cerrarlo, o si es posible, continuar con el resto del script.
Esta es la línea de problemas aquí:
netstat -a -c & sleep 60 && kill SIGHUP 26777
Solo quiero escanear por un minuto e interrumpir sin cerrar/terminar. He probado todas las combinaciones de comandos que se me ocurren. Algunas de las soluciones que he visto parecen increíblemente complicadas y solo me han resultado en errores. ¿Existe una manera más fácil de hacer esto? -Gracias de antemano
Respuesta1
Qué tal esto:
[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 ~]$
Detengo el proceso con la señal SIGSTOP después de 10 segundos (estoy impaciente ;-)) y puedo reiniciarlo cuando quiera con la señal SIGCONT ( kill -CONT
PID)