キーストロークを実行する Linux シェル (CTRL+C)

キーストロークを実行する Linux シェル (CTRL+C)

bash スクリプト内で「Ctrl + C」をシミュレートしようとしたときに問題が発生しました。基本的に、別のコマンドが実行された後のキーストロークをシミュレートしようとしています。スクリプトを完全に終了することに問題はないようです。スクリプトを実際に終了または閉じることなく中断するか、可能であればスクリプトの残りの部分を続行しようとしています。
ここで問題となるのは次の行です。

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

1 分間スキャンして、閉じたり終了したりせずに中断したいだけです。考えられるすべてのコマンドの組み合わせを試しました。私が見た解決策の中には、信じられないほど複雑で、エラーしか発生しないものもありました。これを実行するより簡単な方法はありますか? - よろしくお願いします

答え1

これはどう:

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

kill -CONT10秒後にSIGSTOP信号でプロセスを停止します(私はせっかちです;-))そして、SIGCONT信号( PID)でいつでもプロセスを再開できます。

関連情報