RSS Git Download  Clone
Raw Blame History
#!/usr/bin/perl

#===============================================================================
# called by init.d script to control ./hilis4.fcgi fastcgiexternalserver script
#===============================================================================

use strict;
use warnings;

BEGIN {
    use FindBin qw($Bin); # warn 'BIN:'.$Bin; exit;
    # set lib paths for app:
    use lib (
		"$Bin/../lib",
        '/home/raj/perl5/lib/perl5',
	);
}

use Daemon::Control;
use Data::Dumper;
use User::pwent; # getpwnam()

# APACHE_USER & CENTRE vars set in init.d:
my $CENTRE = $ENV{CENTRE} || die 'no CENTRE env var set'; # warn $CENTRE;
my $USER = $ENV{APACHE_USER} || die 'no APACHE_USER env var set'; # warn $USER;

#-------------------------------------------------------------------------------
my $program = $Bin . '/hilis4.fcgi'; # fastcgiexternalserver script
my $run_dir = '/var/run/hilis4'; # location of pid file, socket, stderr
# get uid of apache user using User::pwent::getpwnam:
my $uid  = getpwnam($USER)->uid; # warn Dumper $uid; exit;
my $self = $0; # warn $self; # this script
#-------------------------------------------------------------------------------

my %args = (
    name         => 'HILIS4_' . $CENTRE,
#    lsb_start   => '$syslog $remote_fs',
#    lsb_stop    => '$syslog',
    lsb_sdesc    => 'HILIS4 daemon',
    lsb_desc     => 'Controls the hilis4 daemon script',
    path         => $self, # this script
    program      => $program,
    program_args => [ ],
    
    pid_file     => "$run_dir/$CENTRE.pid",
    stderr_file  => $run_dir . '/stderr.out',
    stdout_file  => $run_dir . '/stderr.out',
    fork         => 2,
    uid          => $uid,
);

Daemon::Control->new(\%args)->run;

__END__
#!/bin/sh

# typical init.d script

export APACHE_USER=www-data

SCRIPT_DIR=/home/raj/apps/HILIS4/script
CONTROL=hilis4_daemon_control.pl

if [ -x $SCRIPT_DIR/$CONTROL ];
then
    $SCRIPT_DIR/$CONTROL $1
else
    echo "Required program $SCRIPT_DIR/$CONTROL not found!"
    exit 1;
fi