Dans votre commentaire sur la réponse de fons, vous dites que cela ne fonctionne pas en utilisant screen
.
Pouvez-vous nous en dire plus ? En regardant le code source d'openssh, sshd exécute la commande en appelant
YOUR_DEFAULT_SHELL -c COMMAND
Ainsi, par exemple, si votre Shell par défaut est screen
alors cela ne fonctionnera pas très bien car screen
's -c
remplace simplement son .scrreenrc
. Ainsi, il n'y a pas vraiment de moyen d'envoyer des commandes à l'écran si c'est votre Shell par défaut. Vous devrez en fait exécuter screen en tant que commande donnée à ssh, mais avec un Shell par défaut qui n'est pas un écran .
Si c'est ce que vous essayez de faire, je pense que les choses vont devenir vraiment bizarres, puisque screen
fermera également Windows avec les programmes non-interactifs, donc vous devrez faire une astuce similaire à celle de fons, mais un niveau plus profond. DONC, avec, par exemple, /bin/bash (et non l'écran) comme votre Shell par défaut. Quelque chose comme :
ssh user@host -t 'screen bash -l -c "ls;bash"'
Ce qui devrait - prenez une grande respiration - se connecter à l'hôte, exécuter bash -c avec une commande de screen, ce qui créera une nouvelle fenêtre. Si cette fenêtre ouvrait simplement ls, elle se terminerait, et screen se terminerait, donc nous utilisons l'astuce de fons à l'intérieur de la nouvelle fenêtre d'écran .
Je pense que ça va marcher, si c'est bien ce que vous vouliez faire ;)