- #!/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;