0

Windows マシンに接続してスクリプトを実行する T-Plan ロボットを実行します。スクリプトの実行が成功したら、生成された xml ファイルを pscp 経由で Linux マシンにエクスポートします。

T-paln ロボットは、サードパーティのフリーウェアとして機能し、Windows マシンで cmd を介してコマンドを渡します。これは、t-plan ロボットで単純なバッチ ファイルを実行することによって行われます。ただし、Windows にコマンドを送信するスクリプトは、明示的に宣言されたタイムアウト秒数に基づいて切断されます。

Linux マシンでこのアプリケーションを起動する tcl コードを書きたいのですが、コマンドが xml ファイルとして成功した結果を生成し、Linux マシンで受信されたら、xml ファイルが指定されたディレクトリに存在するかどうかを確認し、アプリケーションを正しく終了する必要があります。次のコード セクションでは、この受信した xml レポートを解析し、他のアクションを実行するので、これが必要です。

どの環境でもプロセス/サービスを強制終了するクラスがtclにあるはずです。ここでは、Linuxでそれを実行する必要があります。

返信をお待ちしております。よろしくお願いします

4

1 に答える 1

0

同じ Linux マシンでプロセスを強制終了するには、許可を得ている場合 (つまり、同じユーザーとして実行している場合)、次のいずれかを行います。

package require Tclx
kill $processId

または:

exec kill $processId

(前者は外部コマンドを必要としません — システムコールを直接実行します — しかし、2 番目は Tclx パッケージを必要としません。)

どちらもプロセス ID が必要です

ファイルが存在するかどうかをテストするには、次のfile existsように使用します。

if {[file exists $theFilename]} {
    puts "Woohoo! $theFilename is there!"
}

リモート マシンで何かを強制終了するには、実行するコマンドをそのマシンに送信する必要があります。おそらく次のようになります:

exec ssh $remoteMachine kill $remotePID

を取得する$remotePIDことは「興味深い」場合があり、システム設計全体でかなりの検討が必要になる場合があります。Windows から Linux に呼び出す場合は、ssh を plink に置き換えます。逆の場合は、次のことを話していることになります。

exec ssh $remoteMachine taskkill /PID $remotePID

これは非常に複雑になる可能性があり、あなたが現在取っているアプローチが正しいかどうかはわかりません.

于 2014-03-20T13:18:11.847 に答える