2010-01-05 19 views

risposta

10
screen -d -m sh -c "while :; do ./myCommand; done;" 

Spiegazione:

  • -d -m inizia schermo in modalità indipendente (creare sessione, ma non allegare ad esso)
  • sh -c commandline avvia una shell che esegue il data riga di comando (necessaria, dal momento che stanno usando il built-in while).
+0

La versione dello schermo sul mio sistema dice che l'opzione -c è di leggere un file di configurazione alternativo invece di .screenrc. – MikeSep

+0

Il '-c' non viene passato allo schermo ma piuttosto a' sh'. Dopo lo screen parser della riga di comando legge 'sh' (cioè qualcosa senza un trattino), sa che non seguono altre opzioni e che tutto il resto è un comando che dovrebbe essere eseguito. – Heinzi

+0

Ah, sono corretto. :) – MikeSep

3

Da screen -h, questi sembrano utili:

-dmS name  Start as daemon: Screen session in detached mode. 
-X   Execute <cmd> as a screen command in the specified session. 

non ho fatto io stesso, ma è lì che mi piacerebbe iniziare.

Aggiornamento:

La parte superiore della guida dice anche

Use: path/to/screen [-opts] [cmd [args]] 

così l'interruttore -X può essere di eseguire un comando schermo al contrario di un comando shell. Potresti essere in grado di inserire il comando dopo lo -dmS <name> senza alcuno switch -X.

+0

+1. Una combinazione di questi farà il tuo lavoro. Poiché il tuo * comando * è uno script, potresti doverlo inserire in un file e passarlo o usare 'bash -c' o qualcosa di simile. –