web-dev-qa-db-fra.com

Envoyer une commande à une session d'écran déjà exécutée

J'ai essayé d'envoyer des commandes à une session d'écran GNU exécutée (4.00.03) à OpenSolaris, mais je ne peux pas l'obtenir d'exécuter des commandes via une combinaison de screen -X

OK, je démarre une séance d'écran avec screen -S test, Puis essayé avec screen -r -X "date" Pour me montrer la date, quand je me reconnecterais. Mais ni un message d'erreur ni une sortie à l'écran ne s'est produit. J'ai essayé avec tant de combinaisons que je ne me souviens même pas.

Toute astuce sur la façon de l'accomplir?

La raison pour laquelle je fais cela est, car j'ai un programme, qui ne vient pas comme un démon, et je souhaite la démarrer dans une séance d'écran, je peux donc voir plus tard ce qui se passe.

11
aXon

En fait, c'est assez simple. Vous pouvez utiliser ce qui suit:

screen -S sessionname -X stuff 'command'`echo -ne '\015'`

echo -ne '\015' émule en appuyant sur la Enter clé.

Remarque: cette "substance" est une commande d'écran. http://www.gnu.org/software/screen/manual/screen.html#sttuff

18
thegatekeeper

On dirait que tu veux:

 € Test Screen -S -S -D -M -C/dev/null - SH -C 'date; Exec $ coque '
 [.____] - S Test: Nom Cette session [.____] - D -M: Écran de démarrage détaché [.____] - C/Dev/Null: Ignorer ~ /. SCREENRC (fournissez un fichier différent ou déposez cette option, [.____] selon les besoins) [.____] -: Fin des options de l'écran [.____] SH -C 'date; Exec $ shell ': commande pour l'écran à exécuter, notez que si cette commande [.____] n'était que "date", puis l'écran quitterait immédiatement. Si vous ne voulez pas quitter 
 Ecran après la sortie de la commande, vous pouvez utiliser: 
 $ Ecran -s test -d -m -c/dev/null - votre commande ici 

Ou peut-être que vous voulez juste dtach .

5
Roger Pate