Otra forma es usar pgrep $ pattern, o pkill $ pattern; devuelve todos los PID que coinciden con el patrón dado, buscando en todos los procesos en ejecución en la máquina. Entonces, para limitar el alcance de los PID a solo los que posee, use: pgrep -P $ mypid $ pattern, o pkill -P $ mypid $ pattern
Entonces, para ejecutar un proceso en segundo plano durante un período de tiempo establecido, su secuencia de comandos se vería así:
#!/bin/bash
mypid=$$
run_something &
sleep $time_in_seconds
pkill -P $mypid something
Tenga en cuenta que esto eliminará todos los procesos con el mismo patrón de nombre que se ejecuta bajo el PID principal actual. Por lo tanto, puede usar esto para iniciar múltiples procesos y matarlos a todos simultáneamente después de un cierto tiempo.