[PR]テレビ番組表
今夜の番組チェック

iswebでCGI:プロセスを作る

fork で子プロセスを生成し、それぞれが何か出力します。
fork できるんですね…というよりも、 fork してどうしましょうって感じではありますが…。

動作例

ここを押すと、実行結果がわかります。↓
/cgi-bin/fork.cgi

ソースコード

fork して、子プロセスが HTML の前半を出力します。
親プロセスは、waitpid で子プロセスが終了するのを待ってから、 HTML の後半を出力します。

#!/usr/local/bin/perl
use CGI;
use POSIX ":sys_wait_h";
use strict;

my $cgi = new CGI;
my $pid = fork();
if($pid == 0) {
	my $i;
	print $cgi->header, $cgi->start_html('Fork Test : OK');
	print $cgi->h1('Fork Test');
	for($i=0; $i<3; $i++) {
		print "<p>Child: working...</p>\n";
		sleep(1);
	}
	print "<p>Child: finished.</p>\n";
	exit(0);
} elsif($pid > 0) {
	waitpid($pid, 0);
	print "<p>Parent: wait done ($pid)</p>\n";
	print $cgi->end_html;
} else {
	print $cgi->header, $cgi->start_html('Fork Test : NG');
	print $cgi->h1('Fork Test');
	print "<p>Fork failed.</p>\n";
	print $cgi->end_html;
}

▼ トップ

▼ プロフィール

▼ 個人的宣伝

LINUXサーバーインストール(FedoraCore4)
Oracle10gのバックアップを本気で理解し実践
FC4 や Oracle のインストールの仕方〜管理方法まで、詳しく載っています。 SearchManには情報がもりだくさんです。
いますぐ実践!Linuxシステム管理
システム管理初心者の方を対象に、システム管理のノウハウをお知らせします。
栗日記
毎日栗の絵を描いています。
退屈なとき、癒されたいときなどに、ご覧ください。:-)