2012-04-24 12 views
0

私は、インタラクティブセッションの自動化を実現するためにperlモジュール "Expect"を使用しています。このスクリプトは、localhost上でssh端末を起動しようとしています。つまり、同じスクリプトから2つのspawnコマンド(2つのssh端末を起動するため)を使うことができます。その場合、2つの生成されたプロセスがssh端末を共有する方法。私は、両方の生成されたコマンドが実際にsshターミナルを共有していることを発見しました。端末のUIは実際には乱雑です。上記の主張は真実ですか?同じexpectスクリプトから2つのssh端末を起動できますか?

質問1)真の場合、ssh端末にアクセスする際の生成されたプロセスを制御する良い方法がありますか?

シナリオ: 1)perlスクリプト "demo.pl"には、ssh端末をローカルに起動させる2つのspawnコマンドがあります。 2)生成されたプロセスは、実際にはperlスクリプトが実行されるssh端末を共有しています。

質問2) 既存のものを使用するのではなく、まったく新しいssh端末を起動する方法はありますか?

答えて

1

端末エミュレータとsshは別個のプログラムです。それぞれsshコマンドを含む別々の端末を生成することができますが、端末はその端末に含まれているsshへの通信を処理しているため、スクリプトとのやりとりはできません。

ここでは、Perlウィジェットパッケージを使用するか、端末エミュレータを「スレーブ」モード(例:-Sのオプションをxtermに設定)で使用することができます。どちらの場合でも、入力と出力を個別に生成し、適切なウィジェットまたはエミュレータに転送します。

関連する問題