Eseguire comandi in coda su Linux
Supponiamo di avere diversi comandi da eseguire uno di fila all'altro, senza voler aspettare che finiscano uno per uno per lanciare a mano quello seguente.
Come possiamo fare su Linux?
Sicuramente la concatenazione dei comandi con & ci può venire in soccorso, ma non è molto comoda per vari motivi:
- perchè la riga potrebbe divenire eccessivamente lunga
- perchè se sbagli a digitarne uno, non viene eseguito nulla
- perchè li devi scrivere tutti insieme
Quindi, finchè si tratta di pochi comandi, va bene; in caso contrario possiamo usare task-spooler!
Per installarlo su Debian:
# aptitude install task-spooler
Adesso vediamo qualche esempio; per visualizzare la lista dei comandi:
$ tsp
Inizialmente è vuota.
Possiamo aggiungerli facilmente, e considerate che man mano che li aggiungiamo, questi vengono subito eseguiti:
$ tsp echo "TEST 1"
0
$ tsp echo "TEST 2"
1
$ tsp
ID State Output E-Level Times(r/u/s) Command [run=0/1]
0 finished /tmp/ts-out.AIL2RT 0 0.00/0.00/0.00 echo TEST 1
1 finished /tmp/ts-out.P8ZuMS 0 0.00/0.00/0.00 echo TEST 2
Ad ogni comando viene assegnato un ID univoco.
In questo caso non abbiamo aggiunto comandi lunghi, comunque potete vedere che sono stati eseguiti correttamente.
Per cancellare la lista di quelli finiti:
$ tsp -C
$ tsp
ID State Output E-Level Times(r/u/s) Command [run=0/1]
Come vedete adesso è vuota; ma se aggiungiamo altri, l'ID viene comunque incrementato.
Per resettare gli ID, bisogna resettare il server:
$ tsp -K
Per altri comandi guardate la pagina man!
Enjoy!
linux tsp task-spooler
Commentami!