3 # This program is free software; you can redistribute it and/or
4 # modify it under the terms of the GNU General Public License
5 # as published by the Free Software Foundation; either version 2
6 # of the License, or (at your option) any later version.
8 # This program is distributed in the hope that it will be useful,
9 # but WITHOUT ANY WARRANTY; without even the implied warranty of
10 # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
11 # GNU General Public License for more details.
13 # Strictness to avoid folly
18 exec_prefix=@exec_prefix@
25 # ---------------------------------------------------------------------------
26 # Make sure we're running as the correct user
27 # ---------------------------------------------------------------------------
28 [ $(whoami) != 'opensrf' ] && echo 'Must run as user "opensrf"' && exit;
33 echo "usage: $0 [OPTION]... -c <c_config> -a <action>";
35 echo "Mandatory parameters:";
36 echo -e " -a\t\taction to perform";
38 echo "Optional parameters:";
39 echo -e " -c\t\tfull path to C configuration file (opensrf_core.xml)";
40 echo -e " -d\t\tstore PID files in this directory";
41 echo -e " -l\t\taccept 'localhost' as the fully-qualified domain name";
43 echo "Actions include:";
44 echo -e "\tstart_router"
45 echo -e "\tstop_router"
46 echo -e "\trestart_router"
47 echo -e "\tstart_perl"
49 echo -e "\trestart_perl"
53 echo -e "\tstart_osrf"
55 echo -e "\trestart_osrf"
58 echo -e "\trestart_all"
61 echo " $0 -a restart_all";
62 echo " $0 -l -c opensrf_core.xml -a restart_all";
67 # ---------------------------------------------------------------------------
68 # Load the command line options and set the global vars
69 # ---------------------------------------------------------------------------
70 while getopts "a:d:c:lh" flag; do
72 "a") OPT_ACTION="$OPTARG";;
73 "c") OPT_CONFIG="$OPTARG";;
74 "d") OPT_PID_DIR="$OPTARG";;
75 "l") export OSRF_HOSTNAME="localhost";;
80 OSRF_CONFIG="@bindir@/osrf_config"
81 [ ! -f "$OSRF_CONFIG" ] && OSRF_CONFIG=`which osrf_config`
83 [ -z "$OPT_CONFIG" ] && OPT_CONFIG=`$OSRF_CONFIG --sysconfdir`/opensrf_core.xml;
84 if [ ! -r "$OPT_CONFIG" ]; then
85 echo "Please specify the location of the opensrf_core.xml file using the -c flag";
88 [ -z "$OPT_PID_DIR" ] && OPT_PID_DIR=`$OSRF_CONFIG --localstatedir`/run;
89 [ -z "$OPT_ACTION" ] && usage;
91 PID_ROUTER="$OPT_PID_DIR/router.pid";
92 PID_OSRF_PERL="$OPT_PID_DIR/osrf_perl.pid";
93 PID_OSRF_C="$OPT_PID_DIR/osrf_c.pid";
96 # ---------------------------------------------------------------------------
97 # Utility code for checking the PID files
98 # ---------------------------------------------------------------------------
105 if [ $action == "start" ]; then
107 if [ -e $pidfile ]; then
109 echo "$item already started : $pid";
112 echo "Starting $item";
115 if [ $action == "stop" ]; then
117 if [ ! -e $pidfile ]; then
118 echo "$item not running";
123 if [ -n "$pid" ]; then
124 echo "Stopping $item process $pid..."
136 # ---------------------------------------------------------------------------
137 # Start / Stop functions
138 # ---------------------------------------------------------------------------
141 function start_router {
142 do_action "start" $PID_ROUTER "OpenSRF Router";
143 opensrf_router $OPT_CONFIG routers
144 pid=$(ps ax | grep "OpenSRF Router" | grep -v grep | awk '{print $1}')
145 echo $pid > $PID_ROUTER;
149 function stop_router {
150 do_action "stop" $PID_ROUTER "OpenSRF Router";
154 function start_perl {
155 echo "Starting OpenSRF Perl";
156 opensrf-perl.pl --verbose --pid-dir $OPT_PID_DIR \
157 --config $OPT_CONFIG --action start_all --settings-startup-pause 3
162 echo "Stopping OpenSRF Perl";
163 opensrf-perl.pl --verbose --pid-dir $OPT_PID_DIR --config $OPT_CONFIG --action stop_all
170 if [ "_$host" == "_" ]; then
171 host=$(perl -MNet::Domain=hostfqdn -e 'print hostfqdn()');
174 do_action "start" $PID_OSRF_C "OpenSRF C (host=$host)";
175 opensrf-c $host $OPT_CONFIG opensrf;
176 pid=$(ps ax | grep "OpenSRF System-C" | grep -v grep | awk '{print $1}')
177 echo $pid > "$PID_OSRF_C";
182 do_action "stop" $PID_OSRF_C "OpenSRF C";
189 # ---------------------------------------------------------------------------
190 # Do the requested action
191 # ---------------------------------------------------------------------------
193 "start_router") start_router;;
194 "stop_router") stop_router;;
195 "restart_router") stop_router; start_router;;
196 "start_perl") start_perl;;
197 "stop_perl") stop_perl;;
198 "restart_perl") stop_perl; start_perl;;
201 "restart_c") stop_c; start_c;;
202 "start_osrf") start_perl; start_c;;
203 "stop_osrf") stop_perl; stop_c;;
204 "restart_osrf") stop_perl; stop_c; start_perl; start_c;;
205 "stop_all") stop_c; stop_perl; stop_router;;
206 "start_all") start_router; start_perl; start_c;;
207 "restart_all") stop_c; stop_perl; stop_router; start_router; start_perl; start_c;;