web-dev-qa-db-fra.com

Comment empêcher PuTTY Shell de quitter automatiquement après l'exécution de la commande à partir du fichier de commandes dans Windows?

J'ai écrit un fichier batch comme celui-ci:

Start PuTTY.exe -ssh 172.17.0.52 -l root -m dummy.txt

Puis dans dummy.text J'ai écrit cette commande:

avahi-daemon --no-drop-root -D
export XVHMI_USERCONFIG_PATH=/home/UserProfileConfig
export XDG_RUNTIME_DIR=/tmp
cd /opt/bosch/airis/bin

Lorsque j'exécute le fichier .bat, PuTTY démarre, les commandes s'exécutent (espérons-le, je ne suis pas sûr) et il se termine.

Comment garder cette fenêtre ouverte?

J'ai googlé pour la même chose, mais aucune aide solide. J'ai lu sur le débordement de pile lui-même que nous devons définir quelque chose dans le fichier txt, mais quoi et surtout comment?

13
mkkhedawat

La session SSH se ferme (et PuTTY avec elle) dès que la commande se termine. Normalement, la "commande" est Shell. Comme vous avez remplacé cette "commande" par défaut et que vous souhaitez néanmoins exécuter le shell, vous devez exécuter explicitement le shell vous-même:

avahi-daemon ... ; /bin/bash

Aussi comme utilisation de -m le commutateur implique un terminal non interactif, vous souhaiterez probablement forcer un terminal interactif à l'aide de -t commutateur.


Cependant, je ne suis pas vraiment sûr si vous voulez exécuter Shell ou si vous voulez juste voir la sortie de votre commande. Dans ce dernier cas, avez-vous envisagé d'utiliser plink? Il s'agit du client de terminal de console du package PuTTY. Étant une application console, elle hérite de la console du fichier batch parent, et vous pouvez suspendre la fermeture de la console batch à l'aide de la commande pause, si nécessaire.

Une autre option (à la fois pour PuTTY et Plink) est de faire une pause sur le côté distant. Par exemple. Utilisation de la commande read.

avahi-daemon ... ; read
15
Martin Prikryl

Comme suggéré par Martin, j'ai essayé cette étape:

  1. PuTTY.exe -ssh 172.17.0.52 -l root -m dummy.txt -t

  2. ajouté/bin/bash à la fin des commandes dans dummy.txt

Ça a marché pour moi. Veuillez noter que vous devez suivre les deux étapes mentionnées ci-dessus. De cette façon, vous pouvez conserver la session active et exécuter manuellement d'autres commandes.

5
Sandy