Я пытаюсь написать сценарий bash для запуска одного процесса за другим примерно 1024 раза с различными параметрами командной строки. Однако один из процессов включает бесконечный цикл, и я пытаюсь убить этот процесс, прежде чем начнется другая итерация цикла.Bash script: Убейте один процесс, когда другие завершатся
Так вот что я пытался до сих пор (prog1 включает в себя бесконечный цикл, и я хочу, чтобы убить его, когда Papi завершения работы):
#!/bin/bash
for ((i=0; i<32780; i+=32))
do
./prog1 $i &
pid=$!;
sleep 5s
./papi
kill -s 2 $pid
done
Однако это не убивает любые prog1
экземпляров, и, конечно, продолжает создавать их в начале каждой итерации. Что я делаю не так?
делает prog1 игнорировать сигнал 2? Это работает, если вы используете KILL? –
Неужели убийство работает вне вашего скрипта? Вы пробовали «убить -9»? –
Почему вы используете SIGINT? По умолчанию для kill является SIGTERM, что произойдет, если вы используете это? – Graeme