#!/bin/sh #--------------------------------------------------------------- # Project : Mandriva Linux # Module : rpm-helper # File : add-service # Version : $Id$ # Author : Frederic Lepied # Created On : Mon Jul 8 08:14:34 2002 # Purpose : helper script for rpm scriptlets to add a # service. #--------------------------------------------------------------- if [ $# != 3 ]; then echo "usage: $0 " 1>&2 exit 1 fi pkg=$1 # name of the package 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" unit=${srv}.service add_chkconfig_service() { srv=$1 # support for systemd. chkconfig will do daemon-reload for us if [ $systemd = yes ]; then /bin/systemctl $options enable ${unit} fi if [ $sysv = yes ]; then /sbin/chkconfig --add $srv fi if [ -r /etc/sysconfig/system ]; then . /etc/sysconfig/system fi if [ -z "$ADD_SERVICES_TO_CURRENT_PROFILE_ONLY" ]; then # add the service to all the profiles at once if [ -d /etc/netprofile/profiles/default/services ]; then for dir in /etc/netprofile/profiles/*/services; do touch $dir/$srv done fi fi } add_service() { # Add the service if [ -r /etc/sysconfig/msec ]; then . /etc/sysconfig/msec fi # High security: add only authorized services LIST=/etc/security/msec/server # during the install the symlink isn't done so find the right file # by ourselves if [ -n "$DURING_INSTALL" -a ! -f $LIST ]; then LIST=/etc/security/msec/server.$SECURE_LEVEL fi if [ -f $LIST ]; then if grep -q "^${srv}$" $LIST ; then add_chkconfig_service $srv fi else # Low security: install all the services add_chkconfig_service $srv fi } if [ $num = 1 ]; then # First install mode add_service else # Upgrade mode. # if the service is activated, add it again to be able to handle # changes in start/stop levels or systemd WantedBy lines if [ $systemd = yes ] && /bin/systemctl is-enabled ${unit}; then /bin/systemctl --quiet enable ${unit} fi if [ $sysv = yes ]; then set -- /etc/rc3.d/S??$srv if [ $# -gt 1 ]; then echo 1>&2 "add-service: Error: $srv appears multiple times: $*" fi if [ -f "$1" ]; then /sbin/chkconfig --add $srv fi # restart the service if already running if [ -f /var/lock/subsys/$srv ]; then /sbin/service $srv restart > /dev/null || : fi fi fi # add-service ends here