Другой способ - использовать pgrep $ pattern или pkill $ pattern; возвращает все PID, соответствующие данному шаблону, просматривая все запущенные процессы на машине.
Поэтому, чтобы ограничить область применения PID только теми, которые у вас есть, используйте: pgrep -P $ mypid $ pattern или pkill -P $ mypid $ pattern
Таким образом, чтобы запустить фоновый процесс в течение заданного промежутка времени, ваш скрипт будет выглядеть примерно так:
#!/bin/bash
mypid=$$
run_something &
sleep $time_in_seconds
pkill -P $mypid something
Имейте в виду, что это приведет к уничтожению всех процессов с одинаковым шаблоном имен, работающих под текущим родительским PID. Таким образом, вы можете использовать это для запуска нескольких процессов и уничтожения их всех одновременно через определенное время.