StartProcess

StartProcess["executable"]

外部プログラムを実行し,結果のサブプロセスを表すProcessObjectを返す.

StartProcess[{"executable",arg1,arg2,}]

外部プロセスを実行し,これに指定された引数 argiを渡す.

詳細

  • StartProcessは,指定したプロセスが開始できる場合はProcessObjectを返す.それ以外の場合は$Failedを返す.
  • StartProcessを使って,実行中のプロセスとインタラクトすることができる.Wolfram Engineをブロックせずに「バックグラウンドタスク」を実行することもできる.
  • StartProcessは即座に戻り,開始されたプロセスが完了するのは待たない.プロセスの終了を待つのであればRunProcessを使うとよい.
  • StartProcess[{"executable",arg1,arg2,}]では,argiToStringを使って文字列に変換される.
  • Wolfram EngineはProcessObjectで表されるサブプロセスと,WriteLineWriteStringBinaryWriteReadLineReadStringBinaryRead等の関数を使って交信できる.
  • 標準の入力と出力およびエラーストリームは,ProcessConnectionを使って表すことができる.
  • サブプロセスに関する情報は,ProcessStatusおよびProcessInformationを使って求めることができる.
  • 使用可能なオプション
  • ProcessDirectoryInherited初期作業ディレクトリ
    ProcessEnvironmentInheritedサブプロセス与える環境変数
  • デフォルトで,サブプロセスはWolfram Engineからそのプロセスのディレクトリと環境変数を継承する.
  • Wolfram Engineが終了されると,サブプロセスも強制終了される.
  • 引数 argiのいずれかが"name"->value の形の場合は,"--name=value"の形に変換される.name が単一の文字の場合は,ダッシュは1つしか使われない.

例題

すべて開くすべて閉じる

  (1)

システムのシェルプロセスを開始する:

システムのシェルプロセスにコマンドを書く:

コマンド出力を読む:

プロセスが実行中かどうかをチェックする:

exitコマンドをシェルプロセスに書き込む:

プログラムが実際に終了されたことを確かめる:

考えられる問題  (4)

リストを使うことが,プログラムとその変数のためにStartProcessを呼び出す正しい方法である:

1つの文字列にコマンドと引数を入れてStartProcessを呼ぶことは許されていない:

同様に,プログラムの引数をStartProcessの引数としてStartProcessを呼ぶことは許されていない:

~* のような特殊記号は,StartProcessがシェルをスキップするので,シェル式を使っても変換されない:

direchoのようなシェルコマンドは,Windowsはバイナリではないのでは直接呼び出すことができない(Unixバイナリなので,Unixシステム上では使うことができる):

コマンドの中には絶対パスを使って呼ばなければならないものもある:

インタラクティブな例題  (1)

Wolfram言語でインタラクティブなコンソールを作る.この例題をテストしたければ,まずセルを評価する.次に,入力ボックスに有効な任意のシェルコマンドをタイプしてGoボタンをクリックするとよい:

おもしろい例題  (1)

並列計算のために,新たなWolframKernelプロセスを開始する:

カーネルプロセスが長い計算を行い終了するようにする:

終了した段階でプロセス出力を読む:

エラーシステムに送られた任意のメッセージを読む:

Wolfram Research (2014), StartProcess, Wolfram言語関数, https://reference.wolfram.com/language/ref/StartProcess.html.

テキスト

Wolfram Research (2014), StartProcess, Wolfram言語関数, https://reference.wolfram.com/language/ref/StartProcess.html.

CMS

Wolfram Language. 2014. "StartProcess." Wolfram Language & System Documentation Center. Wolfram Research. https://reference.wolfram.com/language/ref/StartProcess.html.

APA

Wolfram Language. (2014). StartProcess. Wolfram Language & System Documentation Center. Retrieved from https://reference.wolfram.com/language/ref/StartProcess.html

BibTeX

@misc{reference.wolfram_2024_startprocess, author="Wolfram Research", title="{StartProcess}", year="2014", howpublished="\url{https://reference.wolfram.com/language/ref/StartProcess.html}", note=[Accessed: 21-November-2024 ]}

BibLaTeX

@online{reference.wolfram_2024_startprocess, organization={Wolfram Research}, title={StartProcess}, year={2014}, url={https://reference.wolfram.com/language/ref/StartProcess.html}, note=[Accessed: 21-November-2024 ]}