Python でプログラム間通信の勉強をしていた.
その中で fork を使ってプロセスの複製を作って使っている.
このとき子プロセスを終了させるために親プロセスから sys.kill(pid, 8) を使って子プロセスを強制的に終了していたが,子プロセスを自発的に終了させたい.
そこで,親プロセスから子プロセスにメッセージを送って,子プロセスはそのメッセージを受け取れば終了する,というようにしたい.
このプロセス間通信を行うために pipe を使う.
実行結果は以下のようになる.
os.pipe() で送信(書き込み)用,受信(読み込み)用のファイル記述子 rpipe, wpipe を作る.
実際に書き込み,読み込みを行うには,これらを元に os.fdopen が作るファイルオブジェクトを作り使う必要がある.
rpipe には readline():改行までの一文を読み込む.の他に read():メッセージを読み続ける,や readlines():複数行を一括してリストとして読み込む.がある.
プログラム間通信関連メモの目次
その中で fork を使ってプロセスの複製を作って使っている.
このとき子プロセスを終了させるために親プロセスから sys.kill(pid, 8) を使って子プロセスを強制的に終了していたが,子プロセスを自発的に終了させたい.
そこで,親プロセスから子プロセスにメッセージを送って,子プロセスはそのメッセージを受け取れば終了する,というようにしたい.
このプロセス間通信を行うために pipe を使う.
import sys |
実行結果は以下のようになる.
7:23.amarone[86]python pipe_test.py |
os.pipe() で送信(書き込み)用,受信(読み込み)用のファイル記述子 rpipe, wpipe を作る.
実際に書き込み,読み込みを行うには,これらを元に os.fdopen が作るファイルオブジェクトを作り使う必要がある.
rpipe には readline():改行までの一文を読み込む.の他に read():メッセージを読み続ける,や readlines():複数行を一括してリストとして読み込む.がある.
プログラム間通信関連メモの目次