Canalblog
Editer la page Suivre ce blog Administration + Créer mon blog
chez didi - programmation linux, c, bash et autres

createGlobalRunScript

#!/bin/bash

prt="../experiment.prt"

echo -e "#!/bin/bash" > run.sh
echo -e "" >> run.sh
echo -e "wd=\`pwd\`" >> run.sh
echo -e "" >> run.sh
echo -e "function launch " >> run.sh
echo -e "{" >> run.sh
echo -e "\techo -e \"launching \$1...\"" >> run.sh
echo -e "\tcd $1" >> run.sh
echo -e "\tgnome-terminal --geometry 80x20+600+0\$incr --working-directory=\"\$wd/\$1\" --title=\"\$1\" --command=\"./run.sh \$2 \$3 \$4 \$5 \$6\" &" >> run.sh
echo -e "\tcd ../" >> run.sh
echo -e "\tincr=\$((\$incr+50))" >> run.sh
echo -e "}" >> run.sh

echo -e "#saving the ID of already running scripts and bashs" >> run.sh
echo -e "ps -A | grep 'promethe\|bpromethe\|run.sh' | sort -r | awk '{print \$1 \" \" \$4}' > psbeg.tmp" >> run.sh
echo -e "" >> run.sh

for exp in "$@"
do
  echo -e "launch $exp $prt \$1 \$2 -b" >> run.sh
  echo -e "sleep 1" >> run.sh
  echo -e "" >> run.sh
done

echo -e "#saving the ID of all running scripts and bashs" >> run.sh
echo -e "ps -A | grep 'promethe\|bpromethe\|run.sh' | sort -r | awk '{print \$1 \" \" \$4}' > psend.tmp" >> run.sh
echo -e "#looking for the one belonging to this experiment and saving it for kill.sh" >> run.sh
echo -e "diff psbeg.tmp psend.tmp | grep 'promethe\|bpromethe\|run.sh' >> kill.tmp" >> run.sh
echo -e "#we don't need those anymore" >> run.sh
echo -e "rm -f psbeg.tmp psend.tmp" >> run.sh

echo -e "#!/bin/bash" > kill.sh
echo -e "" >> kill.sh
echo -e "for i in \`cat kill.tmp | grep promethe | awk '{print \$2}'\`" >> kill.sh
echo -e "do" >> kill.sh
echo -e "\tkill -s SIGINT \$i" >> kill.sh
echo -e "\tsleep 1" >> kill.sh
echo -e "done" >> kill.sh
echo -e "" >> kill.sh
echo -e "sleep 3" >> kill.sh
echo -e "" >> kill.sh
echo -e "for i in \`cat kill.tmp | grep run.sh | awk '{print \$2}'\`" >> kill.sh
echo -e "do" >> kill.sh
echo -e "\tkill -s SIGINT \$i" >> kill.sh
echo -e "done" >> kill.sh
echo -e "" >> kill.sh
echo -e "rm -f kill.tmp" >> kill.sh

chmod +x run.sh
chmod +x kill.sh

Download

Publicité
Publicité
chez didi - programmation linux, c, bash et autres
  • Petit guide sans prétention tiré de mes expériences professionnel dans le cadre de linux et de la programmation dans divers langages. Si vous aimez n'oubliez pas de prendre 5s pour cliquer sur le lien sponsorisé j'aime.
  • Accueil du blog
  • Créer un blog avec CanalBlog
Publicité
Archives
Publicité