Linux shell 执行按键(CTRL+C)

Linux shell 执行按键(CTRL+C)

我在尝试在 bash 脚本中模拟“Ctrl + C”时遇到了一个问题。基本上,我试图在运行另一个命令后模拟按键。虽然我似乎可以毫无问题地终止整个脚本,但我只是试图中断它,而实际上并没有将其杀死或关闭,或者如果可能的话,继续执行脚本的其余部分。
这是这里的麻烦行:

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

我只想扫描一分钟,然后中断而不关闭/终止。我尝试了我能想到的所有命令组合。我看到的一些解决方案看起来非常复杂,只会导致我出错。有没有更简单的方法可以解决这个问题?-提前谢谢

答案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 ~]$ 

10 秒后,我会使用 SIGSTOP 信号停止该进程(我很不耐烦 ;-)),并且可以随时使用 SIGCONT 信号(kill -CONTPID)重新启动它

相关内容