aboutsummaryrefslogtreecommitdiffstats
path: root/add-service
diff options
context:
space:
mode:
Diffstat (limited to 'add-service')
-rwxr-xr-xadd-service17
1 files changed, 12 insertions, 5 deletions
diff --git a/add-service b/add-service
index e7255e6..9e25c37 100755
--- a/add-service
+++ b/add-service
@@ -20,7 +20,12 @@ num=$2 # number of packages installed
srv=$3 # name of the service
systemd=no
+sysv=no
+options=--quiet
+
[ -x /bin/systemctl -a -r /lib/systemd/system/${srv}.service ] && systemd=yes
+[ -r /etc/rc.d/init.d/${srv} ] && sysv=yes
+[ $sysv = yes ] && options="$options --no-reload"
add_chkconfig_service() {
srv=$1
@@ -28,10 +33,11 @@ add_chkconfig_service() {
# support for systemd. chkconfig will do daemon-reload for us
if [ $systemd = yes ]; then
- /bin/systemctl --quiet --no-reload enable ${srv}.service
+ /bin/systemctl $options enable ${srv}.service
+ fi
+ if [ $sysv = yes ]; then
+ /sbin/chkconfig --add $srv
fi
-
- /sbin/chkconfig --add $srv
if [ -r /etc/sysconfig/system ]; then
. /etc/sysconfig/system
@@ -76,7 +82,8 @@ if [ $num = 1 ]; then
# First install mode
add_service
else
- # Upgrade mode
+ # Upgrade mode. Only really makes sense for SysV scripts
+ [ $sysv = yes ] || exit 0
# if the service is activated, add it again to be able to handle
# changes in start/stop levels and enable systemd unit as well
@@ -87,7 +94,7 @@ else
if [ -f "$1" ]; then
if [ $systemd = yes ]; then
- /bin/systemctl --quiet --no-reload enable ${srv}.service
+ /bin/systemctl $options enable ${srv}.service
fi
/sbin/chkconfig --add $srv
fi