Eseguire comandi in coda su Linux

Mattepuffo's logo
Eseguire comandi in coda su Linux

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!


Condividi

Commentami!