Newsgroup: it.comp.os.linux.iniziare
Titolo: coda continua di run in esecuzione

Salve a tutti.
Devo eseguire una serie di simulazioni su Linux. Ogni simulazione parte
quando la successiva e' terminata, in modo da avere sempre il pc al
lavoro. Se ad esempio ho 3 simulazioni, quello che faccio e' lanciare un
"file eseguibile" (si chiama bash script, o sbaglio?) cosi' fatto:
#!/bin/bash
(lancio run01)
(lancio run02)
(lancio run03)
Spesso pero' mi trovo nella seguente condizione: 
- ho gia' lanciato questo "file eseguibile"
- il pc sta macinando con il run01 a cui manca ancora un'oretta per
terminare
- ho una nuova simulazione run01bis che vorrei far partire subito dopo
run01 ma prima di run02
- ho una nuova simulazione run04 che vorrei mettere in coda a tutte
La mia domanda e': posso modificare il "file eseguibile" nel seguente modo?
#!/bin/bash
(lancio run01)
(lancio run01bis)
(lancio run02)
(lancio run03)
(lancio run04)
Oppure combino casini? Run01 continua ad andare, vero? E run01bis andra'
subito dopo, no? Sono sicuro che questo mio problema e' standard ed esiste
una soluzione convenzionale (forse questa che ho trovato io, forse
un'altra) ma non saprei quale.
Grazie.
-- 
questo articolo e` stato inviato via web dal servizio gratuito 
http://www.newsland.it/news
 segnala gli abusi ad 
ab...@newsland.it

 forse un'altra) ma non saprei quale.
puoi usare un file di appoggio che alla fine di ogni programma run il tuo 
script legge e decide cosa eseguire , oppure ti appoggi ad una named pipe 
dove via via scrivi i processi che vuoi far eseguire, lo script la legge 
ed esegue i processi.

 sbagli:






Allora vediamo se riesco a risolvere in questo modo: creo un file fatto
cosi'
#!/bin/bash
lancio pippo1
lancio pippo2
..
lancio pippo1000
e poi a parte in qualche modo (ma come?) identifico:
pippo1=run01
pippo2=run02
pippo3=run03
se pero' cambio idea mentre sta girando pippo1=run01, allora cambio
l'identificazione dei soli successivi:
pippo2=run01bis
pippo3=run02
pippo4=run03
pippo5=run04
Puo' funzionare? E questa "identificazione" come la faccio?


 lancio pippo1000
no
crei un file fatto cosi:
#!/bin/bash
while 1
do
1 : leggo file di configurazione con scritti dentro i programmi da 
lanciare.
2 : lancio quello successivo all'ultimo che ho lanciato.
3 : se non ci sono + programmi da lanciare: exit
done
ed il file di configurazione:
run01
run03
run04

 3 : se non ci sono + programmi da lanciare: exit
Ok, allora potrei fare la seguente cosa. 
Creo due file di testo di appoggio, in_coda.txt (che contiene in ciascuna
riga i run da eseguire, nell'ordine che va dall'ultimo al primo) e
gia_eseguiti.txt (che contiene in ciascuna riga i run gia' eseguiti, dal
piu' antico al piu' recente). 
Poi creo un bash script che apre in_coda.txt, taglia la riga piu' in
basso, richiude il file. Poi esegue il run segnalato da quella riga.
Quando il run e' finito, apre gia_eseguiti.txt, appende quella riga in
coda, richiude il file. E ricomincia. Se in_coda.txt e' vuoto, termina.
Prima domanda: puo' funzionare? Seconda domanda: dal momento che conosco a
sufficienza Python mentre sono totalmente a digiuno di shell scripting e
ci metterei una vita a farlo, c'e' qualche vantaggio a fare questo con uno
shell script o posso fare il tutto con un programmino in Python?
Grazie ancora.
