を返すことはありません。 sg_inqは、特定のデバイスにiScsiの問い合わせを送信し、一部のデータを抽出します。 - https://golang.org/pkg/os/exec/#CommandContextは、私は、マルチパスデバイス(/ mpathaは/ dev /マッパー)にsg_inqを呼び出すようにしようとしている
このコードを返すことはありません
ctx, cancel := context.WithTimeout(context.Background(),
time.Duration(1000)*time.Millisecond)
defer cancel()
cmd := exec.CommandContext(ctx, "sg_inq", "/dev/mapper/mpatha")
err := cmd.Run()
cmd.Stdout = &stdout
cmd.Stderr = &stderr
stdErr := stderr.Bytes()
stdOut := stdout.Bytes()
公式ガイドのコードの参照:私はこのように、タイムアウトのために行くの独自exec.commandContextを使用しています。 スタンドアロンスクリプトとして実行すると、正常に動作します。しかし、私はそれをインターフェイス全体の一部として実行すると、ちょうど立ち往生します。私はすべての呼び出しを「出ている」と見ることができますが、それらのどれも戻ることはありません。
同じコードスニペットは、スタンドアロンスクリプトではなく、全体行くクラスで動作しない理由はありますか?あるいは、私はここから離れているかもしれません。問題はまったく別のものですか? 私は行く1.9.2(最新)の上でそれをコンパイルしていますが、私は同様に1.9.1で試してみました。
ビルドが正常に動作し、テストが合格し、そのすべてが作業する必要があります。
"全体のクラス"のことを少し混乱させるように言及するときは、最小の実例を示してください。 Goにはクラスがありません:) – biosckon