Monday, July 24, 2017

A simple thread manager for a bash/shell scripts

A simple thread manager for a bash/shell scripts. Place your command in place of 'sleep $((30/i))'

    TREG=/tmp/treg
    :> $TREG
    function add_t(){
       echo Starting $1
       echo $1 >> $TREG
    }
    
    function rem_t(){
       echo Done $1
       sed -i /^$1$/d $TREG
    }
    
    function clean(){
       :> $TREG
       exit 1
    }
    
    trap "clean" SIGINT SIGTERM
    
    for i in 1 2 3
    do
       (add_t thread$i;sleep $((30/i));rem_t thread$i)&
    done
    
    while true
    do
       if [[ -s $TREG ]]
       then
          echo Running:
          cat $TREG
       else
          echo All Done.
          break
       fi
       sleep 2
    done

1 comment: