in build_docs.pl [987:1023]
sub serve_local_preview {
#===================================
my ( $docs_dir, $redirects_file, $web_resources_pid, $preview_pid ) = @_;
if ( my $nginx_pid = fork ) {
# parent
$SIG{INT} = sub {
say 'Terminating preview services...nginx';
kill 'TERM', $nginx_pid;
wait;
if ( $preview_pid ) {
say 'Terminating preview services...preview';
kill 'TERM', $preview_pid;
wait;
}
if ( $web_resources_pid ) {
say 'Terminating preview services...parcel';
kill 'TERM', $web_resources_pid;
wait;
}
};
$SIG{TERM} = $SIG{INT};
wait;
say 'Terminated preview services';
exit;
} else {
my $nginx_config = file('/tmp/nginx.conf');
write_nginx_test_config(
$nginx_config, $docs_dir, $redirects_file,
$web_resources_pid, $preview_pid
);
close STDIN;
open( STDIN, "</dev/null" );
exec( qw(nginx -c), $nginx_config );
}
}