Для проблемы нужно больше спецификации. Возможно, рекурсия будет помогать Вам, но иметь в виду, что рекурсия является почти всегда альтернативой повторению, и наоборот. Может случиться так, что 2-уровневый вложенный цикл может быть достаточным для Ваших потребностей. Просто сообщите нам, какую проблему Вы пытаетесь решить.
Для этого в bash есть специальная переменная:
kill $!
$! расширяется до PID последнего процесса, выполненного в фоновом режиме.
Вы можете убить по номеру задания. Когда вы помещаете задачу в фоновый режим, вы увидите что-то вроде:
$ ./script &
[1] 35341
Это [1]
- это номер задания, на который можно ссылаться следующим образом:
$ kill %1
$ kill %% # Most recent background job
Чтобы просмотреть список номеров заданий, используйте задания
команда. Еще из man bash
:
Существует несколько способов сослаться на задание в оболочке. Символ
%
вводит название задания. Номер вакансииn
может быть обозначается как% n
. На задание также можно ссылаться с помощью префикса имени, используемого для его запуска, или с помощью подстроки, которая появляется в его командной строке. Например,% ce
указывает на остановленное заданиеce
. Если префикс соответствует более чем одному заданию, bash сообщает об ошибке. С другой стороны, использование%? Ce
относится к любому заданию, содержащему строкуce
в своей командной строке. Если substring соответствует более чем одному заданию, bash сообщает об ошибке. Символы%%
и% +
относятся к понятию оболочки текущего задания, которое является последним заданием, остановленным, когда оно было на переднем плане или запущено в фоновом режиме. Предыдущая работа может для ссылки используйте% -
. В выводе, относящемся к заданиям (например, выводе команды jobs), текущее задание всегда помечено+
, а предыдущее задание --
. Один%
(без сопроводительной спецификации должности) также относится к текущее задание.
Следующая команда дает вам список всех фоновых процессов в вашем сеансе вместе с pid. Затем вы можете использовать его, чтобы убить процесс.
jobs -l
Пример использования:
$ sleep 300 &
$ jobs -l
[1]+ 31139 Running sleep 300 &
$ kill 31139
skill doB
навык
- это версия команды kill, которая позволяет вам выбрать один или несколько процессов на основе заданных критериев.
Вам нужен его pid ... используйте "ps -A", чтобы найти его.
Просто используйте команду killall:
killall имя задачи
для получения дополнительной информации и дополнительных параметров, введите «man killall».