Newsgroup: it.comp.os.linux.software
Titolo: lanciare programma al termine di un processo

A volte mi capita, dopo aver lanciato un programma in background, di avere
la necessità di fare in modo da lanciarne un altro subito dopo il termine
del primo processo.
In un primo momento ho pensato di scrivermi un programmino che, ogni tot
secondi vede se il processo è attivo, e, al termine, lancia il mio... ma...
non è che questa cosa è già stata fatta?
Per capirci vorrei qualcosa che mi risolva questo problema:
$ programma_che_non_so_quando_finisce &
$ ...
$ pidof programma_che_non_so_quando_finisce
12345
$ ACCODA 12345 altro_programma &
e ACCODA che, quando il processo "12345" termina, lancia "altro_programma"
esiste già una cosa del genere?
-- 
By ZeD

 
programma_che_non_so_quando_finisce && altro_programma &

 il termine del primo processo.
Magari dico una banalità, ma io farei
(programma1 && programma2) &
se vuoi verificare che il primo programma esca con successo.
Se non t'interessa lo stato d'uscita
(programma1; programma2) &
-- 
ValeRyo
XT600 "Katoki Pajama" - 
http://www.slimmit.com/go.asp?7Y9
GamerTag: 
http://card.mygamercard.net/IT/nxe/ValeRyo76.png
 

 programma_che_non_so_quando_finisce && altro_programma &
probabilmente non mi son spiegato bene:
io `programma_che_non_so_quando_finisce` l'ho già lanciato e, solo 5 minuti
dopo, mi rendo conto che in realtà volevo accodargli anche
`altro_programma`!
-- 
By ZeD


Facebook: Massimo Bacilieri

 Come soluzione "con la mannaia" potrebbe risolvere.
erhm, sì,
io pero' mi chiedevo se esistesse già un programma del genere,
meno "mannaro", anche se il cuore dovrebbe essere quello che suggerisci tu
-- 
By ZeD

 sleep 1; done; altro_programma
  Stavo correggendoti l'espressione con ps -ef | grep 
programma_non_sai_quando_finisce | grep -v grep; poi ho rivisto la 
documentazione di ps e a meno di giochi col terminale dovrebbe funzionare 
anche il ps -a.
  Ogni tanto fa bene ripassare
-- 
Non pretendo che comprendiate il significato di quello che ho scritto senza 
averlo riletto un certo numero di volte. Personalmente, vi riterrei degli 
stupidi se lo faceste. Io l'ho letto sei volte ed ancora non l'ho capito.


volendo si può usare:
pgrep -f /programma/che/non/sai/quando_finisce
ed eviti il pipe. Ma sono piccolezze e comunque, la frittata ognuno se 
la può girate come gli pare.
-- 
echo onailimissaM | awk 'BEGIN { FS = "" }
{ for (i = NF; i >= 1; i-- )
   printf $i }'; echo

Vito 'ZeD' De Tullio ha scritto:

[alessandro@nika ~]$  sleep 60 &
[1] 3868
[alessandro@nika ~]$ ps -C sleep
  PID TTY          TIME CMD
 3868 pts/1    00:00:00 sleep
[alessandro@nika ~]$ wait $(pidof sleep) ; echo 'Fatto.'
[1]+  Done                    sleep 60
Fatto.
[alessandro@nika ~]$
  Ciao.
-- 
Alessandro Selli 
http://alessandro.route-add.net
AVVERTENZA: i messaggi inviati a "trappola" non mi arriveranno.
WARNING: messages sent to "trappola" will never reach me.
Chiave PGP/GPG: EC885A8B

 Fatto.
boh@pcboh:~$ sleep 60 &
[1] 5708
boh@pcboh:~$ bash
boh@pcboh:~$ ps -C sleep
   PID TTY          TIME CMD
  5708 pts/1    00:00:00 sleep
boh@pcboh:~$ wait 5708
bash: wait: pid 5708 is not a child of this shell
Problema che non si pone monitorando invece lo stato dei processi con ps 
(o /proc/5708).
Ciao.

 bash: wait: pid 5708 is not a child of this shell
grazie!!! :D
beh, per i miei usi è decisamente improbabile il caso che hai descritto,
quindi mi "accontentero'" di wait
-- 
By ZeD