In fact, the authorship is not mine (link to the full article). I will save it as a ready snippet:

#!/bin/bash

RANDOM=10
JOBS_COUNTER=0
MAX_CHILDREN=10
MY_PID=$$

for i in {1..100}
do
    echo Cycle counter: $i
    JOBS_COUNTER=$((`ps ax -Ao ppid | grep $MY_PID | wc -l`))
    while [ $JOBS_COUNTER -ge $MAX_CHILDREN ]
    do
        JOBS_COUNTER=$((`ps ax -Ao ppid | grep $MY_PID | wc -l`))
        echo Jobs counter: $JOBS_COUNTER
        sleep 1
    done
    sleep $(($RANDOM % 30)) &
done
echo Finishing children ...

where MY_PID=$$ is getting the PID of your own process. If we run child scripts or if we need to control another independent process, the line for calculating the number of processes can be changed as follows:

MY_PID="cyber-bot-loader.sh"
...
JOBS_COUNTER=$((`ps -ela | grep $MY_PID | wc -l`)) # ищем не дескриптору, а по имени процесса
No Comments
Comments to: Parallel tasks in Linux with limited number of processes

Your email address will not be published. Required fields are marked *

Attach images - Only PNG, JPG, JPEG and GIF are supported.

Good Reads

Worlwide

Trending

Advertiser

Login

Welcome to Typer

Brief and amiable onboarding is the first thing a new user sees in the theme.
Join Typer
Registration is closed.