Webエンジニア向けプログラミング解説動画をYouTubeで配信中!
▶ チャンネル登録はこちら

【Ruby3.x】spawn()関数の使い方

spawn関数の使い方について、初心者にもわかりやすく解説します。

作成日: 更新日:

基本的な使い方

spawn関数は、新しいプロセスを生成し、指定された外部コマンドを実行する関数です。この関数は、Rubyプログラムの実行中に、オペレーティングシステムが提供するコマンドや、他のプログラミング言語で書かれた実行ファイルなど、別の独立したプログラムを起動するために利用されます。

spawn関数は、実行するコマンドとその引数を、スペースで区切られた一つの文字列として渡すことも、要素ごとに分かれた配列として渡すことも可能です。配列形式で指定することで、シェルを介さずに直接コマンドを実行するため、セキュリティ上より安全な実行方法となります。

spawnは、新しい子プロセスを起動した後、通常、親であるRubyプロセスは子プロセスの終了を待たずに、すぐに次の処理へと進みます。これを非同期実行と呼びます。もし子プロセスの終了を待ってから親プロセスで次の処理を行いたい場合は、spawnが返す子プロセスのプロセスID(PID)を使って、Process.waitProcess.waitpidといったメソッドを別途呼び出す必要があります。

また、spawn関数は、子プロセスに渡す環境変数を設定したり、子プロセスの標準入力、標準出力、標準エラー出力をファイルや他のパイプにリダイレクトしたりするなど、子プロセスの実行環境を細かく制御するための多様なオプション引数をサポートしています。これにより、子プロセスへのデータの受け渡しや、子プロセスからの結果の取得を柔軟に行うことができます。成功すると、起動した子プロセスのプロセスIDを整数で返します。システムとの連携や、特定の外部ツールをRubyから操作する場面で広く活用される重要な機能です。

構文(syntax)

1spawn("command", "arg1", "arg2", ...)

引数(parameters)

command, *args, **options

  • command: 実行するコマンドライン文字列
  • *args: コマンドに渡す追加の引数
  • **options: コマンド実行に関するオプションをハッシュ形式で指定

戻り値(return)

Integer

spawn メソッドは、指定されたコマンドを新しいプロセスとして実行し、そのプロセスのプロセスID(PID)を整数で返します。

関連コンテンツ

関連プログラミング言語