最新のアップグレード後に動作を停止したように見えるスクリプトがあります。問題を見つけるために、私は小さなスクリプトを書きました:
import subprocess
hdparm = subprocess.Popen(["xargs","echo"],
stdin=subprocess.PIPE)
hdparm.stdin.write("Hello\n")
hdparm.stdin.write("\n")
hdparm.stdin.close()
hdparm.wait()
quit()
これは「Hello」と改行を出力するだけですが、2 つの改行が必要です。何が原因ですか?(現在2.7.3を使用しています)
編集:問題のあるスクリプトは次のとおりです(明確にするために編集されています):
hdparm = subprocess.Popen(["hdparm", "--please-destroy-my-drive", "--trim-sector-ranges-stdin", "/dev/sda"],
stdin=subprocess.PIPE, stdout=subprocess.PIPE, stderr=subprocess.STDOUT)
hdparm_counter = 0
for rng in ranges_to_trim:
hdparm.stdin.write("%d:%d\n" % (rng["begin"],rng["length"]))
hdparm_counter += 1
if hdparm_counter > 63:
hdparm.stdin.write("\n")
hdparm_counter = 0
if hdparm_counter != 0:
hdparm.stdin.write("\n")
hdparm.stdin.close()
hdparm.wait()
編集:問題はスクリプト自体にあると思います。EOF を hdparm に送信して、想定どおりに動作させる必要があります。