2010-01-05 5 views

Répondre

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

Explication:

  • -d -m démarre l'écran en mode détaché (créer session, mais ne pas attacher à elle)
  • sh -c commandline commence une coquille qui exécute la ligne de commande donnée (nécessaire, puisque vous utilisent le while intégré).
+0

La version de l'écran sur mon système indique que l'option -c est de lire un autre fichier de configuration au lieu de .screenrc. – MikeSep

+0

Le '-c' n'est pas passé à l'écran mais plutôt' sh'. Après que l'analyseur de ligne de commande d'écran lit 'sh' (c'est-à-dire quelque chose sans un tiret), il sait que plus d'options ne suivent et que tout le reste est une commande qui devrait être exécutée. – Heinzi

+0

Ahh, je suis corrigé. :) – MikeSep

3

De screen -h, ces look utiles:

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

Je ne l'ai pas fait moi-même, mais c'est là que je commencerais.

Mise à jour:

Le sommet de l'aide dit aussi

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

de sorte que le commutateur -X peut être d'exécuter une commande d'écran par opposition à une commande shell . Vous pourriez juste être en mesure de mettre votre commande après le -dmS <name> sans aucun commutateur -X.

+0

+1. Une combinaison de ceux-ci fera votre travail. Puisque votre * commande * est un script, vous devrez peut-être le mettre dans un fichier et le transmettre ou utiliser 'bash -c' ou quelque chose de similaire. –