1

Я столкнулся с проблемой при попытке симулировать "Ctrl + C" в скрипте bash. По сути, я пытаюсь смоделировать нажатия клавиш после выполнения другой команды. Хотя у меня, похоже, нет проблем с завершением сценария все вместе, я только пытаюсь прервать его, фактически не убив его или не закрыв его, или, если возможно, продолжить работу с остальной частью сценария.
Это проблема линия здесь:

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

Я просто хочу сканировать в течение минуты, и прерывать без закрытия / завершения. Я пробовал каждую комбинацию команд, которые я могу придумать. Некоторые из решений, которые я видел, кажутся невероятно сложными и привели только к ошибке для меня. Есть ли более простой способ сделать это? -Заранее спасибо

1 ответ1

2

Как насчет этого:

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

Я прекращаю процесс с сигналом SIGSTOP через 10 секунд (я нетерпеливый ;-)) и могу перезапустить его в любое время, когда захочу с сигналом SIGCONT (kill -CONT PID)

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .