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 を実行しています。
ありがとう、プラナフ