HelloItsME1212
Posts: 11
Joined: Tue Jun 12, 2018 4:11 pm

Opening all .jar in one dir in a screen rotating them.

Mon Jul 02, 2018 11:30 pm

The script coder is spanish, so am i. So if you dont understand one commented line try translating with any translator or ask me, but i think programimg is the same.

The script is these:

What should it do: Search all .jar in one directory and put them in a screen running by X time=Sleep,

and just Y instances at the same time= nodos.

So the script:


Code: Select all

        #!/bin/bash
    # bot folder
    
    
    
    
    find /home/pi/es50/Tribalwars/ficheros -name "*.jar" > /home/pi/es50/Tribalwars/ficheros.txt 
    
    
    # number of bots per run
    bots="$(ls /home/pi/es50/Tribalwars/ficheros/ | wc -l)"
    
    # bots per run
    nodos=2
    totalContador=$((nodos%bots))
    
    # interaction number counter
    contador=0
    inicio=0
    tempContador=0
    nodosTemp=$((nodos -1))
    contadorFicheros=0
    
    # Carga de archivos
    # for f in $FILES
    # do
    #   echo "Cargando Bots"
    #   # . $f
    # done
    
    
    
    while [ $contador > $totalContador ]
    do
        # echo "------------------------------------"
        # echo $bots   +    $totalContador
        # echo "------------------------------------"
    
        echo "------ INICIO ---------------------" $tempContador
        echo "------ FIN ------------------------" $nodosTemp
    
        contadorFicheros=0
        while read p; do
          # if [$tempContador -le $inicio -a]; then
          echo $tempContador " . . . . .  . . . . . " $nodosTemp 
    
          # if [ $tempContador -le  $nodosTemp ]  &&  [   contadorFicheros  ]  ; then
          if [ $tempContador -le $contadorFicheros ] && [ $nodosTemp -ge $contadorFicheros ]  ; then
            # EJECUTAMOS EL PROCESO
            # EJECUCION DE LOS BOTS
    
            screen -dmS dsx java -Xms128M -XmX128M -jar  $p
    
            ((tempContador++))
            echo "PROCESO......................... " + $p
            sleep 20
          fi
          ((contadorFicheros++))
        done </home/pi/es50/Tribalwars/ficheros.txt
    
        # NOS GUARDAMOS TODOS LOS PROCESOS EN EJECUCCION
         ps | grep '/home/pi/es50/Tribalwars/ficheros/' > /home/pi/es50/Tribalwars/log.txt
    
        # ESPERAMOS EL TIEMPO DESEADOPARA LA PROXIMA ITERACION
        echo "Esperando zZzZzZzz......"
        sleep 180
    
        # MATAMOS LOS PROCESOS
        while read p; do
          echo $p  | cut -d' ' -f 1
          echo "Procedemos a matar el proceso: "  + $p
          # kill $p
        done </home/pi/es50/Tribalwars/log.txt
    
    
        # inicio=$((inicio + nodos))
        tempContador=$((tempContador + nodos -2))
        nodosTemp=$((nodosTemp + nodos))
    
        ((contador++))
          
        # REINICIAMOS LOS CONTADORES
        if [ $contador == $totalContador ]; then
          contador=0
          inicio=0
          tempContador=0
          nodosTemp=$((nodos -1))
          echo $totalContador
          echo "VOLVERMOS A EMPEZAR......."
        fi
    done
    
    echo "done!"


So i do

in my raspberry.

> chmod +x script.sh
>
> screen -S Name
>
> ./script.sh

output:

./script.sh

Code: Select all

   ------ INICIO --------------------- 0
    ------ FIN ------------------------ 1
    0  . . . . .  . . . . .  1
    PROCESO.........................  + /home/pi/es50/Tribalwars/ficheros/1/dsx1337-5.51.jar
    1  . . . . .  . . . . .  1
    PROCESO.........................  + /home/pi/es50/Tribalwars/ficheros/2/dsx1337-5.51.jar


But no screens / java procces running.

Code: Select all

    [email protected]:~/es50/Tribalwars $ screen -list
    There is a screen on:
            9411.Name       (02/07/18 23:21:53)     (Detached)
    1 Socket in /run/screen/S-pi.
    [email protected]:~/es50/Tribalwars $

Return to “Java”

Who is online

Users browsing this forum: No registered users and 3 guests