1

perl CGI スクリプトからシェル スクリプトを実行しています。

#!/usr/bin/perl
my $command = "./script.sh &";
my $pid = fork();
if (defined($pid) && $pid==0) {
        # background process
        system( $command );
}

シェル スクリプトは次のようになります。

#!/bin/sh
trap 'echo trapped' 15
tail -f test.log

ブラウザから CGI スクリプトを実行し、httpd を使用して停止する/etc/init.d/httpd stopと、スクリプトは SIGTERM シグナルを受け取ります。

スクリプトが別のプロセスとして実行され、とにかく httpd に結び付けられないことを期待していました。SIGTERM をトラップすることはできますが、スクリプトが SIGTERM を受信する理由を理解したいと思います。

私はここで何をしているのですか?RHEL 5.8 と Apache HTTP サーバー 2.4 を実行しています。

ありがとう、プラナフ

4

1 に答える 1