Linux-Shell zum Ausführen eines Tastendrucks (STRG+C)

Linux-Shell zum Ausführen eines Tastendrucks (STRG+C)

Ich habe ein Problem festgestellt, als ich versucht habe, „Strg + C“ in einem Bash-Skript zu simulieren. Im Grunde versuche ich, Tastenanschläge zu simulieren, nachdem ein anderer Befehl ausgeführt wurde. Obwohl ich scheinbar kein Problem damit habe, das Skript insgesamt zu beenden, versuche ich nur, es zu unterbrechen, ohne es tatsächlich zu beenden oder zu schließen, oder, wenn möglich, mit dem Rest des Skripts fortzufahren.
Das ist hier das Problem:

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

Ich möchte nur kurz scannen und dann unterbrechen, ohne zu schließen/beenden. Ich habe jede erdenkliche Befehlskombination ausprobiert. Einige der Lösungen, die ich gesehen habe, scheinen unglaublich kompliziert und haben bei mir nur zu Fehlern geführt. Gibt es einen einfacheren Weg, das zu erreichen? – Vielen Dank im Voraus

Antwort1

Wie wäre es damit:

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

Ich stoppe den Prozess mit dem Signal SIGSTOP nach 10 Sekunden (ich bin ungeduldig ;-)) und kann ihn jederzeit mit dem Signal SIGCONT ( kill -CONTPID) neu starten.

verwandte Informationen