Add os-svc-restart
Add os-svc-restart, a helper script to restart a service. It uses map-services to figure out the actual service name, as the service name can differ based on the distro being used and also if installing from source or packages. Currently, only if the init system is systemd will a call out to map-services be done. This matches the pattern from install-packages where map-packages is not used on dpkg systems since those package names are used as the default in the source install scripts. Having a helper script will avoid the proliferation of the following pattern everywhere: service foo restart || service foo-by-another-name restart This also significantly reduces errors in the log due to the above, which can be misleading. Depends on Change-Id: Ie7b2dcfa7cabd887d5c212df110d90f9d00a7f65 Change-Id: I15eb2a5db4b0a08e1fb40bda640cd8f224939a92
This commit is contained in:
parent
fc681391ef
commit
5015d43116
|
@ -49,7 +49,7 @@ function enable_upstart_service {
|
|||
|
||||
function enable_systemd_service {
|
||||
local name=$1
|
||||
systemctl enable $name.service
|
||||
systemctl enable $(map-services $name).service
|
||||
}
|
||||
|
||||
# TODO: SysV init fallback support
|
||||
|
|
|
@ -0,0 +1,61 @@
|
|||
#!/bin/bash
|
||||
#
|
||||
# Copyright 2013 Red Hat, Inc.
|
||||
# All Rights Reserved.
|
||||
#
|
||||
# Licensed 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.
|
||||
|
||||
set -eu
|
||||
|
||||
usage() {
|
||||
echo "Usage: os-svc-restart -n SERVICENAME"
|
||||
echo ""
|
||||
echo " -h Show help and exit"
|
||||
echo " -n SERVICENAME Name of job/service file."
|
||||
echo ""
|
||||
}
|
||||
|
||||
SERVICENAME=${SERVICENAME:-""}
|
||||
|
||||
nshift=0
|
||||
while getopts "hn:" opt; do
|
||||
case "$opt" in
|
||||
n) SERVICENAME=$OPTARG;;
|
||||
h) usage; exit 0;;
|
||||
\?) usage; exit 1;;
|
||||
:) usage; exit 1;;
|
||||
esac
|
||||
done
|
||||
|
||||
shift $(($OPTIND-1))
|
||||
if [ -z "$SERVICENAME" ] ; then
|
||||
usage
|
||||
fi
|
||||
|
||||
function restart_upstart_service {
|
||||
local name=$1
|
||||
service $name restart
|
||||
}
|
||||
|
||||
function restart_systemd_service {
|
||||
local name=$1
|
||||
systemctl restart $(map-services $name).service
|
||||
}
|
||||
|
||||
# TODO: SysV init fallback support
|
||||
DIB_INIT_SYSTEM=$(dib-init-system)
|
||||
if [ "$DIB_INIT_SYSTEM" == "upstart" ]; then
|
||||
restart_upstart_service $SERVICENAME
|
||||
elif [ "$DIB_INIT_SYSTEM" == "systemd" ]; then
|
||||
restart_systemd_service $SERVICENAME
|
||||
fi
|
Loading…
Reference in New Issue