0

次のコードを使用して、別のマシンでコマンドを起動しています。

#!/bin/bash
/usr/bin/rsh -n $Host_Name "cat asdf.txt &"

そして、私は以下を使用してcatコマンドのPIDを取得しようとしています。

/usr/bin/rsh -n $Host_Name pid="$!"

しかし、$ pidをエコーすると、空白になります。私は間違って何をしていますか?別のマシンで実行された最後のコマンドのPIDを取得する簡単な方法はありますか?

ありがとう

4

1 に答える 1

2

あなたは$しか手に入れることができません!コマンドを開始したシェルのバックグラウンドコマンドの。コマンドがstderrに何も出力しない場合、これは機能する可能性があります。

/usr/bin/rsh -n $Host_Name "cat asdf.txt & echo $! >&2" 2> pidfile

開始されたコマンドのpidは、ローカルで「pidfile」に保存されます。

補足:私はrshを使用しません。それは本質的に安全ではありません。代わりにsshを使用します;)

于 2012-09-28T12:55:12.790 に答える