1

私はExpectsshに使用しています。生成されたセッションのセッション ID を知りたいです。それ、どうやったら出来るの?

これは私のコードです:

my $addr = "10.101.10.102";
my $cmd = "ssh username@".$addr;
my $exp = Expect->spawn($cmd) or die "Cannot spawn command\n";
4

1 に答える 1

1

$exp->pid()Expectの方法を使用してみましたか。Expect モジュールのドキュメントには次のように書かれています。

$object->pid()
Return pid of $object, if one exists. Initialized filehandles will not have pids (of course).

ローカルホストにtelnetで接続する簡単なテストでこれを試し、unix psコマンドを実行してプロセスとコマンドを確認し、$exp->pid()それらが一致するようにしました。

use strict;
use Expect;
my $exp = Expect->spawn("ssh localhost") or die "cannot spawn command\n";
print `ps -ef | grep -i "ssh localhost\$"` ;
print "PID of spawned process is: ", $exp->pid(), "\n";

出力

providnt  4389  4302  0 09:42 pts/1    00:00:00 ssh localhost
PID of spawned process is: 4389
于 2015-07-20T08:43:14.440 に答える