Dans votre commentaire sur la réponse de fons, vous dites que cela ne fonctionne pas pendant l'utilisation screen
.
Pouvez-vous développer sur ce sujet? En regardant le code source de openssh, sshd exécute la commande en appelant
YOUR_DEFAULT_SHELL -c COMMAND
Ainsi, par exemple, si votre shell par défaut est screen
, cela ne fonctionnera pas si bien parce que screen
de » -c
drapeau juste l' emporte sur son .scrreenrc
. Donc, il n'y a vraiment aucun moyen d'envoyer des commandes à l'écran s'il s'agit de votre shell par défaut. Vous devrez en fait lancer screen en tant que commande donnée à ssh, mais avec un shell par défaut qui n'est pas screen .
Si c'est ce que vous essayez de faire, je pense que les choses vont devenir vraiment bizarres, car screen
elles fermeront également les fenêtres avec des programmes non interactifs. Vous devrez donc faire un tour similaire à celui de fons, mais à un niveau plus profond. SO, avec par exemple / bin / bash (et non screen) comme shell par défaut. Quelque chose comme:
ssh user@host -t 'screen bash -l -c "ls;bash"'
Ce qui devrait - prendre une profonde respiration-- ssh dans l'hôte, lancez bash -c avec une commande de screen, ce qui créera une nouvelle fenêtre. Si cette fenêtre venait juste d'ouvrir ls, elle se terminerait et l'écran se terminerait. Nous utilisons donc le truc de fons à l'intérieur de la nouvelle fenêtre d'écran .
Je pense que ça va marcher, si c'est même ce que tu essayais de faire;)