#!/bin/bash # # Licensed to the Apache Software Foundation (ASF) under one or more # contributor license agreements. See the NOTICE file distributed with # this work for additional information regarding copyright ownership. # The ASF licenses this file to You under the Apache License, Version 2.0 # (the "License"); you may not use this file except in compliance with # the License. You may obtain a copy of the License at # # http://www.apache.org/licenses/LICENSE-2.0 # # Unless required by applicable law or agreed to in writing, software # distributed under the License is distributed on an "AS IS" BASIS, # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. # See the License for the specific language governing permissions and # limitations under the License. # # Shell script to stop rsyncd on master Solr server orig_dir=$(pwd) cd ${0%/*}/.. solr_root=$(pwd) cd ${orig_dir} unset user verbose debug . ${solr_root}/bin/scripts-util # set up variables prog=${0##*/} log=${solr_root}/logs/rsyncd.log # define usage string USAGE="\ usage: $prog [-u username] [-v] [-V] -u specify user to sudo to before running script -v increase verbosity -V output debugging info " # parse args while getopts u:vV OPTION do case $OPTION in u) user="$OPTARG" ;; v) verbose="v" ;; V) debug="V" ;; *) echo "$USAGE" exit 1 esac done [[ -n $debug ]] && set -x fixUser "$@" logMessage stopped by $oldwhoami logMessage command: $0 $@ # look for pid file if [[ ! -f ${solr_root}/logs/rsyncd.pid ]] then logMessage "missing rsyncd pid file ${solr_root}/logs/rsyncd.pid" exit 2 fi # get PID from file pid=$(<${solr_root}/logs/rsyncd.pid) if [[ -z $pid ]] then logMessage "unable to get rsyncd's PID" exit 2 fi kill $pid # wait until rsyncd dies or we time out dead=0 timer=0 timeout=300 while (( ! dead && timer < timeout )) do if ps -eo pid | grep -qw $pid then kill $pid (( timer++ )) sleep 1 else dead=1 fi done if ps -eo pid | grep -qw $pid then logMessage rsyncd failed to stop after $timeout seconds exit 3 fi # remove rsyncd.conf /bin/rm -f ${solr_root}/conf/rsyncd.conf