web-dev-qa-db-ja.com

Windowsでバッチファイルからコマンドを実行した後にPuTTYシェルが自動終了しないようにするにはどうすればよいですか?

私はこのようなバッチファイルを書きました:

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

次にdummy.textこのコマンドを書きました:

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

.batファイルを実行すると、PuTTYが起動し、コマンドが実行され(うまくいけば、わかりません)、終了します。

そのウィンドウを開いたままにする方法は?

私は同じことをググったが、確かな助けはない。私はスタックオーバーフロー自体を読みましたが、txtファイルで何かを定義する必要がありますが、何が、そして最も重要なのはどのようにですか?

13
mkkhedawat

コマンドが完了するとすぐに、SSHセッション(およびPuTTY)が閉じます。通常、「コマンド」はシェルです。このデフォルトの「コマンド」をオーバーライドし、それでもシェルを実行したい場合は、シェルを自分で明示的に実行する必要があります。

avahi-daemon ... ; /bin/bash

また、-mスイッチの使用は非インタラクティブ端末を意味するため、おそらく-tスイッチを使用してインタラクティブ端末を強制的に戻す必要があります。


ただし、Shellを実行するのか、コマンド出力を確認するだけなのかはよくわかりません。後者の場合、plinkの使用を検討しましたか? PuTTYパッケージのコンソール端末クライアントです。コンソールアプリケーションであるため、親バッチファイルのコンソールを継承します。必要に応じて、pauseコマンドを使用してバッチコンソールを閉じるのを一時停止できます。

別のオプション(PuTTYとplinkの両方)は、リモート側で一時停止することです。例えば。 readコマンドを使用します。

avahi-daemon ... ; read
15
Martin Prikryl

マーティンが提案したように、私はこのステップを試しました:

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

  2. dummy.txtのコマンドの最後に/ bin/bashを追加

それは私のために働いた。上記の両方の手順に従う必要があることに注意してください。このようにして、セッションを存続させ、手動でさらにコマンドを実行できます。

5
Sandy