#!/usr/bin/perl -T -w -I/opt/eprints3/perl_lib ###################################################################### # # chkconfig: - 85 15 # description: Start the eprints indexer daemon as the correct user # ###################################################################### # # This file is part of GNU EPrints 2. # # Copyright (c) 2000-2004 University of Southampton, UK. SO17 1BJ. # # EPrints 2 is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by # the Free Software Foundation; either version 2 of the License, or # (at your option) any later version. # # EPrints 2 is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU General Public License for more details. # # You should have received a copy of the GNU General Public License # along with EPrints 2; if not, write to the Free Software # Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA # ###################################################################### use EPrints::SystemSettings; use strict; if( $< != 0 ) { print "This script is intended to start the eprints indexer as a service.\nIt should only be run as root.\nExiting.\n"; exit 1; } if( !defined $ARGV[0] || $ARGV[0] !~ m/^(start|stop|status)$/ ) { print "Usage: $0 {start|stop|status}\n"; exit 1; } my $opt = $1; # These are not going via Platform, but this is a UNIX script, so meh. my @uinfo = getpwnam($EPrints::SystemSettings::conf->{'user'}); my @ginfo = getgrnam($EPrints::SystemSettings::conf->{'group'}); my $uid = $uinfo[2]; my $gid = $ginfo[2]; $( = $) = $gid; $> = $< = $uid; my $indexer_cmd = $EPrints::SystemSettings::conf->{'base_path'}.'/bin/indexer'; $| = 0; if( $opt eq 'start' ) { print 'Starting EPrints Indexer: '; } if( $opt eq 'stop' ) { print 'Stopping EPrints Indexer: '; } delete $ENV{'PATH'}; my $rv = system( $indexer_cmd, $opt ); $rv = $rv >> 8; if( $opt eq 'start' || $opt eq 'stop' ) { if( $rv == 0 ) { print ' [ OK ]'."\n"; } else { print ' [FAILED]'."\n"; } } exit $rv;