現在、私はpython 3.2を使用しており、Windowsで3つのコマンドプロンプトのインスタンスを生成するコードを書きたいと思っていました。 Plink(パテ)を使用してこれらのコマンドプロンプトのそれぞれの別のサーバーにアクセスし、これらのコマンドプロンプトで時間のかかるプログラムを並行して実行する必要があります。コマンドプロンプトのインスタンスを3つ作成することはできましたが、これらのプロンプトにコマンドを送信できませんでした。そうする方法はありますか?この目的のためにマルチプロセッシング/マルチスレッディングを使うべきですか?Windowsでコマンドプロンプトの3つのインスタンスを作成し、各プロンプトにコマンドをPythonを使用して並行して渡す方法
私はコマンドプロンプトを作成するために次のコードを書いています。これらのプロンプトのそれぞれにコマンドを渡す方法はありますか?
def Plink():
name = multiprocessing.current_process().name
proc = subprocess.Popen("C:\\Windows\\System32\\cmd.exe")
if __name__ == '__main__':
Plink_1 = multiprocessing.Process(name='Plink 1', target=Plink)
Plink_2 = multiprocessing.Process(name='Plink 2', target=Plink)
Plink_3 = multiprocessing.Process(name='Plink 3', target=Plink)
Plink_1.start()
Plink_2.start()
Plink_3.start()
ちょっとしたデバッグの後、最初の問題の原因が見つかりました。プロンプトがまったく作成されないため、プロンプトにコマンドを渡すことが問題でした。申し訳ありませんが、私はマルチタスキング/マルチプロセッシングにはかなり新しいです。私は、より明確にするために質問を修正しました。あなたのコメントありがとう – Pulimon
@プリモン:あなたは間違った方向からこれに近づいており、それも間違っています。あなたがやっていること全てが新しいプロセスを開始しているならば、 'multiprocessing'パッケージを使う必要はありません - とにかくプロセスは始まります! 'subprocess.Popen'を3回呼び出すだけです。さらに、あなたがそれで達成しようとしていることは、むしろ混乱しています。あなたがしたいことは、リモートサーバーへのSSH接続を開いてプログラムを実行することです。ですから、[paramiko](http://www.lag.net/paramiko/)のようなPython用のSSH2実装を入手し、それを使用してください。 – cha0site
情報ありがとうございます。しかし、paramikoはpython 3.xで動作しますか?彼らのサイトはPython 2.2+を指定していますが、Python 3の具体的な記述は見つかりませんでした。( – Pulimon